Eklenti Kullanmadan WordPress Rastgele Yazı

Merhaba arkadaşlar. Uzun aramalar sonucu bulamadağım fakat sonrasında takip ettiğim bir blogda görüp de paylaşmasını istediğim bu fonksiyonu bende sizinle paylaşmak istedim.

Fonksiyonun işlevi linke tıklandığı zaman rastgele bir yazıya gitmesidir.

Nasıl Yapılır?

functions.php dosyasında aşağıdaki kodu bulunuz.

<?php

Hemen altına aşağıdaki kodu 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' );
}

Her şey temam peki rastgele yazıya nasıl gideceğiz? Bunun için de ister üst menüye ister yan menüye link verebilirsiniz. Vermeniz gereken link aşağıdaki şekilde olmalıdır.

http://www.siteadiniz.com/?rastgele

Bana kahve ısmarlamak ister misin?

Bunları da okuyabilirsin
Yazı hakkındaki yorumun nedir?

14 Yorum
  1. Uğur Dalkıran
    10 Ocak 2012 - 19:16
    Cevapla
  2. Gökhan
    6 Mart 2012 - 14:23
    Cevapla
  3. Sedat
    16 Nisan 2012 - 19:23
    Cevapla
    • Usluer
      16 Nisan 2012 - 20:05
      Cevapla
  4. Sedat
    16 Nisan 2012 - 20:37
    Cevapla
    • Usluer
      17 Nisan 2012 - 10:17
      Cevapla
  5. Sedat
    17 Nisan 2012 - 16:17
    Cevapla
  6. Batuhan
    24 Nisan 2012 - 00:50
    Cevapla
  7. Batuhan
    3 Haziran 2012 - 21:10
    Cevapla
  8. Hüseyin Tekin
    7 Haziran 2012 - 11:02
    Cevapla
  9. Mehmet CABAR
    3 Temmuz 2013 - 12:27
    Cevapla
  10. Emre
    13 Nisan 2014 - 12:31
    Cevapla
  11. mesut
    13 Ocak 2016 - 15:24
    Cevapla