Semih | 24.Ağustos.2009 | bu yazı eskimiş | İpuçları
Sitemizin sağ tarafında görmüş olduğunuz, Kendimi Şanslı Hissediyorum butonu ile aynı işlevde bir buton oluşturmak istiyorsanız, yani bir linke tıkladığınızda sizi rastgele bir yazıya yönlendirmesini istiyorsanız, bu işlevi çok basit kodlarla yapmak mümkündür. Benim sitede kullandığım kodu sizinle paylaşıyorum.
Aşağıdaki kodu functions.php içerisine ekleyiniz.
<?php
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' );
}
?>
Functions.php dosyasını kaydedip, kapatın.
Şimdi de rastgele yazı linkini sitemize ekleyelim:
<a href="http://www.siteadi.com/?rastgele" title="Rastgele Yazı">Hadi Rastgele</a>
Hepsi bu kadar işte

“Rastgele Yazı Butonu / Linki Oluşturmak” için 12 Yorum var
2. Deneme yapabildim… Teşekkür ederim…
kullanmaya başladım bile
peki bunu kategoriler için nasıl yapabiliriz ?
x y z kategorileri için nerelerde oynama yapmak gerekmektedir ?
Selam Semih hocam,
w3 total cache e takılıyor rastgele statike dönüyor, cache silince yeniden random ediyor sonra o statik oluyor.
w3 total cache de page cache başlığında, “Never cache the following pages:” bölümü var ama ne eklediysem olmadı.
Nerede yanlış yapıyorum
iyi ama bu kodu bu şekilde eklersek iç sunucu hatası alırız? çünkü functions.php’de sadece bu kod olmıyacak değilmi? bence tekrar kontrol etseniz dediğime göre daha iyi olur gibi..
kendimi şanslı hissediyoruma tıkladım burayı açtı haha
Merhaba birşey öğrenmek istiyorum ama öncelikle kod çok güzel ve ipucu bölümü çok işime yaradı bunu belirteyim. Şimdi sorun Functions.php ye yukarıdaki kodu eklediğimde iç sunucu hatası alıyorum 2.8 sürüm acaba bundan mı kaynaklanıyor yada neden ?
Bu kodları sadece widgete ekleyerek yapabilirmiyiz functions.php eklemeden ? html kodları varmıdır ?
Ben de bugün şöyle bir şey paylaştım:
http://www.sosyoblog.org/sidebarda-kayan-rastgele-yazilar-olusturma/
güzel bir paylaşım, çok teşekkürler..
Eline sağlık güzel anlatım olmuş
hayır ne yazık ki, html statik sayfalar içindir… php değişken göndermezseniz sayfa gelmez ??