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

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.

8
Bir yorum yap yada bir soru sor.

avatar
8 Yorum konuları
0 Konu cevapları
0 Takipçiler
 
En çok beğenilen yorum dizilişi
En iyi yorum dizilişi
8 Yorum yazarları
TolgaibrahimAteyizler Bunuda AçıklayınFurkan DOĞANTayfun Kadir Güler Son yorum yazarları
  Yorumlara Abone Ol  
Önce Yeniler Önce Eskiler Önce Beğenilenler
Bildir
SEO
SEO

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.

Celali
Celali

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

Salih Toy
Salih Toy

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.

Tayfun Kadir Güler
Tayfun Kadir Güler

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

Furkan DOĞAN
Furkan DOĞAN

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

Ateyizler Bunuda Açıklayın
Ateyizler Bunuda Açıklayın

Dinç abi güzel açıklamış ateyizlere gerek kalmadı…

ibrahim
ibrahim

Teşekkürler, bloguma ekledim :)

Tolga
Tolga

güzel anlatım abi teşekkürler