İpuçları 94 kez görüntülendi. 0

WordPress’te eklenti kullanmadan sayfalama nasıl yapılır?

Sürekli güncelleniyor olmasına rağmen WordPress’te hala daha numaralı sayfalama özelliğinin bulunmaması cidden büyük eksiklik. Sadece “Önceki yazılar” ve “Sonraki yazılar” şeklinde iki butonun kullanıldığı WordPress’te gerçek bir sayfalama özelliğini açmak istiyorsanız, eklenti dizininden bunun için geliştirilen yazılımları kurmanız gerekiyor. Ancak bu eklentiler hem CPU’yu yoruyor, hem de gereksiz yere CSS dosyasını yükleyerek sitenin geç açılmasına sebep olabiliyor.

Mesela WP-Pagenavi eklentisini ele alalım. Bu eklentiyi yükleyerek veritabanında ekstra birkaç satır daha eklemektense, biraz daha karmaşık olsa da sunucuyu yormayacak bir şekilde sayfalama işlemini yine gerçekleştirebilirsiniz. Hazırsanız bunu nasıl yapabileceğinize geçelim.

Öncelikle aşağıdaki kodları temanızın functions.php dosyasına eklemeniz gerekiyor.

function pagination($pages = ”, $range = 4)
{
$showitems = ($range * 2)+1;

global $paged;
if(empty($paged)) $paged = 1;

if($pages == ”)
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}

if(1 != $pages)
{
echo “<div class=\”pagination\”><span>Page “.$paged.” of “.$pages.”</span>”;
if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo “<a href='”.get_pagenum_link(1).”‘>&laquo; First</a>”;
if($paged > 1 && $showitems < $pages) echo “<a href='”.get_pagenum_link($paged – 1).”‘>&lsaquo; Previous</a>”;

for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? “<span class=\”current\”>”.$i.”</span>”:”<a href='”.get_pagenum_link($i).”‘ class=\”inactive\”>”.$i.”</a>”;
}
}

if ($paged < $pages && $showitems < $pages) echo “<a href=\””.get_pagenum_link($paged + 1).”\”>Next &rsaquo;</a>”;
if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo “<a href='”.get_pagenum_link($pages).”‘>Last &raquo;</a>”;
echo “</div>\n”;
}
}

Daha sonra aşağıdaki kodları temanızın CSS dosyasına dahil etmelisiniz. Bu genelde style.css dosyasıdır.

.pagination {
clear:both;
padding:20px 0;
position:relative;
font-size:11px;
line-height:13px;
}

.pagination span, .pagination a {
display:block;
float:left;
margin: 2px 2px 2px 0;
padding:6px 9px 5px 9px;
text-decoration:none;
width:auto;
color:#fff;
background: #555;
}

.pagination a:hover{
color:#fff;
background: #3279BB;
}

.pagination .current{
padding:6px 9px 5px 9px;
background: #3279BB;
color:#fff;
}

Son olarak ise aşağıdaki kodu, temanızın index.php dosyasında bulunan “Eski sayfalar” ve “Yeni sayfalar” yazan bölümle değiştirmelisiniz.

<?php if (function_exists(“pagination”)) {
pagination($additional_loop->max_num_pages);
} ?>

Hepsi bu kadar!

 

Yok ben illa eklenti ile yapacağım diyorsanız da sizi şuraya alalım :

http://aykutozdemir.com.tr/wordpress/wp-pagenavi-ile-sayfalama.html



Bir Cevap Yazın