Web Araçları

Özel sayfa şablonu içerisinde sayfalama yapmak Detaylı

Tema geliştiricilerinin bazen içinden çıkamadığı durumlardan birisidir. Bir örnek senaryo olarak anasayfa tasarımı bağımsız olan bir temada tüm yazıların listelendiği ayrı bir sayfa istenmesi ve bu sayfada sayfalama yapılmasının istenmesi diyebiliriz.

Bu noktada WordPress Doktoru yardımınıza yetişiyor ve sizi düşünmekten kurtarıyor. Bu yapı ile sorunsuz bir şekilde sabit sayfalar içerisinde belirli bir yazı tipine ait içerikleri sayfalayarak gösterebilirsiniz.

İlk olarak sayfa şablonumuz içerisinde kullanacağımız örnek döngü yapısını inceleyelim.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
/* Post Tipi */
'post_type'=> 'post',
/* Sayfa başına gösterilecek yazı sayısı */
'posts_per_page' => 12,
/* Query sayfalamasını tanımlıyoruz */
'paged' => $paged
);
$query = new WP_Query( $args );
while( $query->have_posts() ) : $query->the_post();
/* Yazı Başlığı vs. döngü içeriği */
endwhile;
sayfalama($query->max_num_pages); wp_reset_query(); ?>

Bu sabit sayfamız içerisinde kullanacağımız döngü örneğidir. Bu örneği tasarıma uygulama kısmı tabikide size kalıyor, zaten çok zor bir şey değil. Gelelim functions.php dosyasına ekleyeceğimiz kodlara..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function sayfalama($max = '', $pages = '', $range = 3)
{
$showitems = ($range * 2)+1;
global $paged;
if(empty($paged)) $paged = 1;
if($pages == '')
{
global $wp_query;
$pages = $max;
if(!$pages)
{
$pages = 1;
}
}
if(1 != $pages)
{
echo "<div class='pagination'><ul>";
echo "<li>Diğer Haberler</li>";
for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? "<li class='active'><a>".$i."</a></li>":"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>";
}
}
echo "<li><a href='".get_pagenum_link(1)."'>İlk Sayfa</a> / <a href='".get_pagenum_link($pages)."'>Son Sayfa</a></li>";
if ($paged > 1) echo "<li><a href='".get_pagenum_link($paged - 1)."' class='prev'></a></li>";
if ($paged < $pages && $showitems > $pages) echo "<li><a href='".get_pagenum_link($paged + 1)."' class='next'></a></li>";
echo "</ul></div>";
}
}

ve işlemimiz tamamdır. Bundan sonrasında css ile ufak dokunuşlar yaparak sayfalamanızı daha güzel bir şekilde gösterebilirsiniz. Eğer takıldığınız bir konu olur ise yorum olarak belirtebilirsiniz.

WordPress Doktorunuz yanınızda 🙂

Click to comment

CEVAP BIRAKIN

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2018 Web Sitesi üzerinde yayınlanan tüm içerikler www.ogzblg.com sitesine aittir. Toplist 25

To Top