Genel İnternet & Bilgisayar

WP_Query Döngüsünde Sayfalandırma Yapmak

Normal loop döngüsünden farklı olarak bildiğiniz üzere WP_Query ve query_posts fonksiyonlarıyla wordpress sitenizdeki yazılarınızı istediğiniz şekillerde sıralayabiliyorsunuz. Ancak bunu yaparken sayfalama yapmanız pek mümkün olmuyor. Bunu da basit bir kodla çözerek, istediğimiz sayfalamayı da ekleyebiliyoruz.

Normal bir Wp_Query döngüsüne bakalım:

[sourcecode language=”php”] <ul>
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query(‘showposts=10′.’&paged=’.$paged);
?>

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
[/sourcecode]

Bu döngüde, kategori belirtmeksizin en son yazılan 10 yazıyı < li > < / li > etiketi içerisinde gösterdik. Ancak sitedeki tüm yazıları sayfalandırma yapmak suretiyle (her sayfada 10 yazı) göstermek istiyoruz. Bunun için de şöyle bir koda başvurmalıyız:

[sourcecode language=”php”] &lt;div class=&quot;navigation&quot;&gt;
&lt;div class=&quot;alignleft&quot;&gt;&lt;?php next_posts_link( __(‘Eski Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;div class=&quot;alignright&quot;&gt;&lt;?php previous_posts_link( __(‘Yeni Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php $wp_query = null; $wp_query = $temp;?&gt;
[/sourcecode]

Wp-PageNavi eklentisini kullanıyorsak ve sayfalandırmayı numaralı şekilde yapmak istiyorsak yukarıdaki yerine şunu kullanabiliriz:

[sourcecode language=”php”] &lt;?php if(function_exists(‘wp_pagenavi’)) wp_pagenavi(); else { ?&gt;
&lt;div class=&quot;navigation&quot;&gt;
&lt;div class=&quot;alignleft&quot;&gt;&lt;?php next_posts_link( __(‘Eski Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;div class=&quot;alignright&quot;&gt;&lt;?php previous_posts_link( __(‘Yeni Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php } ?&gt;
[/sourcecode]

Tam Kod

[sourcecode language=”php”] &lt;h3&gt;Son Yazılar&lt;/h3&gt;
&lt;ul&gt;
&lt;?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query-&gt;query(‘showposts=5′.’&amp;paged=’.$paged);
?&gt;
&lt;?php while ($wp_query-&gt;have_posts()) : $wp_query-&gt;the_post(); ?&gt;
&lt;li&gt;&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; rel=&quot;bookmark&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
&lt;?php endwhile; ?&gt;
&lt;/ul&gt;
&lt;?php if(function_exists(‘wp_pagenavi’)) wp_pagenavi(); else { ?&gt;
&lt;div class=&quot;navigation&quot;&gt;
&lt;div class=&quot;alignleft&quot;&gt;&lt;?php next_posts_link( __(‘Eski Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;div class=&quot;alignright&quot;&gt;&lt;?php previous_posts_link( __(‘Yeni Yazılar’, ‘arras’) ) ?&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php } ?&gt;
&lt;?php $wp_query = null; $wp_query = $temp;?&gt;
[/sourcecode]

Yazar hakkında

Furkan Güven Taştan

Erzurum'da doğdu. Ankara Lisesi ve ardından Ankara Üniversitesi Hukuk Fakültesi'nden mezun oldu. Ankara Yıldırım Beyazıt Üniversitesi Hukuk Fakültesi'nde araştırma görevlisi. Daha ayrıntılısı için tıklayınız.

Yorum Ekle

Yorum göndermek için buraya tıklayın

Önceki yazıyı okuyun:
WordPress Özel Alanları Özelleştirin: More Fields

Wordpress'le yaptığım her site çerçevesinde her gün yeni şeyler keşfediyorum. En son bulduğum More Fields, Wordpress'in CMS yapısını güçlendirecek türden...

Kapat