alexa  Menu
wordpress tema yapımı

wp_redirect() ile rastgele makale gösterme

  20.09.2014 ,   1 yorum ,   3.044 kez okundu.

WordPress kullanan blog yazarları son zamanlarda sayfalarına rastgele makale menüsü yerleştiriyor. Aslında hoş bir özellik. Bu paylaşımımda bu işlemi en basit ve anlamlı şekilde nasıl yapabileceğimizi anlatmaya çalışacağım.

Bu işlemin birkaç yöntemi olabilir fakat 2 yönetmden bahsetmek istiyorum. İlk önce çok bilinen ve kullanılan yöntemden bahsedelim. Öncelikle rastgele.php adlı bir sayfa oluşturmamız gerekiyor.

Bunun için ilk yazacağımız kodlar aşağıdaki gibi olmalı:

<?php 
/* Template name: Rastgele*/
?>
<?php get_header();?>
<?php $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posts as $post) { //1 adet rastgele makale çek?> 

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    <p><?php the_title(); // Makale başlığı ?></p>
    
    <p><?php the_content(); // Makale içeriği?></p>
    
    <?php endwhile; else: // Eğer makale yoksa ?>
    
    <p>Makale bulunamadı</p>

	<?php endif; ?>
    
<?php } ?>
<?php get_sidebar();?>
<?php get_footer();?>

Makale bulunamadı

Burada rastgele makale çağırmak için get_posts(‘orderby=rand&numberposts=1’); kodunu ilave etmiş olduk. Ve foreach ile döndürerek makaleyi ve başlığını yazdırdık.

Not: Bilmeyenler için bu sayfayı nasıl çalıştıracağımızı da yazayım. rastgele.php dosyasını tema klasörünüze attıktan sonra yönetim panelinde yeni sayfa oluştururken sağda Şablon seçeneğinden Rastgele isimli şablonu seçmemiz gerekir. Buradaki Rastgele ismi yukarıda yazmış olduğumuz kodların en başındaki /* Template name: Rastgele*/ alanından geliyor.

Daha sonra oluşturmuş olduğunuz sayfanın linkini görüntülediğinizde her yenileme zamanı farklı bir makale gösterileceğini görmüş olacaksınız.

Fakat burada şöyle bir sorun ortaya çıkıyor. Sayfa linki. Evet sayfa linki hiçbir zaman değişmiyor. Çünkü siz Rastgele sayfasındasınız ve rastgele makaleyi bu sayfa içerisinde her yenilemede yazdırıyorsunuz. Tabi bu da bir yöntem belki farklı projelerde linkin değişmemiş olması işinize gelebilir.

Ama bazen bu durum hoş karşılanmıyorsa o zaman ikinci ve daha basit olan yöntemi kullanmakta fayda var. Şöyle ki rastgele2.php adlı bir dosya oluşturarak aşağıdaki kodları yazalım:

<?php 
/* Template name: Rastgele 2*/
$posts = get_posts('post_type=post&orderby=rand&numberposts=1'); // rastgele makale seç
   foreach($posts as $post) {
		   $link = get_permalink($post);
   }
   wp_redirect($link,307);
   exit;
?>

Gördüğünüz gibi burada daha az kod yazarak aynı işlemi yapmış olduk aslında. Yine rastgele2.php dosyasını tema klasörümüze attıktan sonra yönetim panelinde yeni sayfa oluşturarak Şablon kısmında Rastgele2 (/* Template name: Rastgele2 */) seçeneğini seçerek sayfamızı yayınlıyoruz.

Sayfamızı her görüntülediğimizde farklı bir makaleye yönleneceğini göreceksiniz. Burada işlem şöyle gerçekleşiyor. Rastgele2.php sayfasını her görüntülediğinizde rastgele bir makale seçilerek o makaleye yönlenmiş oluyor. O yüzden sayfa yenilendiğinde değil Rastgele 2 şablonunu kullanarak oluşturduğunuz sayfayı her görüntülediğinizde farklı makale gösteriliyor ve tabiki link kısmı da bu nedenle değişmiş oluyor.

Umarım faydalı olmuştur. 🙂

1 yorum yapılmış

    Wordpress tema yapımı - rastgele makale gösterme #5

    […] tema yapımı serisinin 5-ci bölümünde rastgele makale göstermeyi / listelemeyi öğrenmiş olacaksınız. Bunun dışında istediğiniz kategoriyi devre […]

    22.05.2015, 15:10:53

Yorum yapın..


%d blogcu bunu beğendi: