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 7 Yorum var
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 ??