WordPress Rastgele Yazıları Gösterme

Bazı temalarda veya bazı sitelerde gerekli olan özellik olan WordPress Rastgele Yazıları Gösterme konusunu bu yazımda anlatacağım.

Öncelikle rastgele yazıları göstermek için ayar dosyamız yani Functions.php dosyamızda işlem yapmamız gerekecek.Bu işlemi yapmak için ilk olarak Functions.php dosyamızı açalım.Functions.php dosyamızı açtıktan hemen sonra <?php diye başlayan bir php açılış etiketi göreceksiniz.O etiketin hemen altına aşağıdaki kodları ekleyin.

function rastgele_yazi() {
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', 'rastgele_yazi' );
}

Kodlarımızı ekledikten sonra ise gösterme işlemine geçebiliriz.

Göstermek için ise;www.tayfunguler.org/?rastgele yani alan adınızın sonuna /?rastgele eklemeniz yeterli olacaktır.