WordPress Rastgele Yazı & Konu Gösterimi (Eklentisiz)

W

Bu yazımızda rastgele yazı nasıl yapılır onu anlatacağım. Hiç bir eklenti kullanmadan bir tutam PHP kodu ile rastgele yazı adresi (URL) oluşturmak mümkün.

Aşağıdaki işlemleri yaptığınızda sizde aşağıda olduğu gibi bir adres oluşacak, site adresi /?rastgele şeklinde çalışan url çeşitli konulara rastgele gitmenize olanak sağlayacak.

https://codex.dincmedya.com.tr/?rastgele

Bu işlemi uygulamadan önce mutlaka dosyanızın yedeğini alın, özellikle fonksiyon dosyası üzerinde çalışma yapıyorsanız bu çok daha önemli, diğer dosyalara nazaran fonksiyon dosyaları çok daha hassas ve kolaylıkla sorun çıkarabiliyorlar, ah keşke yedek alsaydım demeyim.

Öncelikle yapmanız gereken fonksiyon (functions.php) dosyasında aşağıdaki kodu bulmanız, bu kod ilk satırda bulunur, ayrıca fonksiyon dosyanızın ismi farklı da olabilir örneğin theme-functions.php gibi.

<?php

Şimdi ise gerekli kodları bulduğumuz kodun hemen altına (2-3 satır boşluk bırakarak) ekliyoruz.

///////////////////////////////////////////////////////////////////
//////  Rastgele Yazı - Konu Gösterimi codex.dincmedya.com.tr  ///////
///////////////////////////////////////////////////////////////////
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' );
}
///////////////////////////////////////////////////////////////////
//////  Rastgele Yazı - Konu Gösterimi codex.dincmedya.com.tr  ///////
///////////////////////////////////////////////////////////////////

İşlem bundan ibaret artık sizinde rastgele yazı getiren bir URL adresiniz oldu, bir sonraki yazımda ise Rastgele Yazı & Konu Ziyaretçilere Sunmak‘tan bahsedeceğim.

Yazar hakkında

Murat Dinç

Bozuktus.com, sistemgereksinimleri.net, klavyer.com sitelerinin kurucusu, muratdinc.com'da kişisel blog yazarı, codex.dincmedya.com.tr coder, seo.muratdinc.com'da SEO uzmanı.

8 yorum

  • Gerçekten sade anlayışlı bir dil kullanarak çok güzel wp ciler gönül rahatlıyıla kullanabilir. Böyle bir sitenin böyle alıntı yapmadan kodları paylaşarak kalitenizi belli ediyorsunuz.

  • Murat abi gittikçe ilerliyor görüyorum seni dahada ilerilere çıkıcaksın çok iyi wordpresse gönül verenler arasındasın :D

  • Bu yöntemi çok sık kullanırım Murat hocam. :) WordPress tasarım sattığım ve dattığım çalışmalar da bu yöntem her zaman mevcuttur. Zaten kullanıcılar genellikle WordPress sorunlarında hep bu işlemi soruyorlar. “bu/şu temada rastgele foksiyonu varmı?” :) Yararlı bir konu.

  • Çok faydalı bir konuya deginmişsiniz.Çunku bazı temalarda olmaya özellik.Çok aradığım olmuştu:)

  • Muhteşemsiniz hocam, pratik yollarla çok güzel çözümler üretebiliyorsunuz. İleride kullanacağım bir modifikasyon olacak…