Bugün sizlerle uzun süredir kullandığım, menüde bulunan Rastgele butonu sizinle paylaşmak istiyorum. Peki bu buton ne işe yarıyor; tıkladığımızda rastgele bir yazıya gitmemizi sağlıyor. Bu Rastgele fonksiyonunu sanırım bir eklenti ilede yapabiliyordunuz. Ama eklentinin adı gelmiyor aklıma zaten gerekte yok eklentili bir şekilde kullanmanıza. :) Sözü fazla uzatmadan konuya geçelim.
Aşağıda vereceğim kodu functions.php'de etiketinden hemen sonra aşağıdaki kodları ekleyiniz.
function yazi_yonlendir() {
global $wpdb;
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
if ( isset( $_GET['random_cat_id'] ) ) {
$random_cat_id = (int) $_GET['random_cat_id'];
$query = "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id = $random_cat_id) INNER JOIN $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
if ( isset( $_GET['random_post_type'] ) ) {
$post_type = preg_replace( '|[^a-z]|i', '', $_GET['random_post_type'] );
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
$random_id = $wpdb->get_var( $query );
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['rastgele'] ) ) {
add_action( 'template_redirect', 'yazi_yonlendir' );
}
Ve fonksiyonumuz hazır yapmamız gereken tek bir şey kaldı oda istediğiniz bir yere link vermek.
(Örnek: Menü, Footer, Sidebar'a resim ekleyebilirsiniz.)
Link nasıl olmalı?
Cevap: http://www.siteniz.com/?rastgele şeklinde olması gerekmektedir.
Yeni konularda görüşmek üzere :)
Kaynak: http://www.okansaglam.com.tr/blog/wordpress-rastgele-yaziya-gitme-eklentisiz.html