Go Dilinde Concurrency

2,057 More

Projedeki Git Dosyaları Nasıl Silinir?

1 7,450 More

yTheme

4 2,627 More

Sunucu Güvenliği | SSH (Secure Shell) Kullanımı

2 2,051 More

Truemag

  • PHP
  • Golang
  • Laravel
  • Linux
  • SQL
  • SEO
  • WordPress
  • Diğer
    • Yazılım
    • Javascript
    • Css/XHtml/W3C
    • Genel
    • Tanıtım
    • Ajax
  • Home
  • ANASAYFA
  • HAKKIMDA
  • SPONSORLUK
  • ARŞİV
  • İLETİŞİM
  • BENİMLE ÇALIŞMAK İSTER MİSİNİZ?

WordPress’te Eklenti Kullanmadan Sayfalama

WordPress’in en sağlıklı şekilde kullanmanın yolu, ihtiyacımız olan noktalarda eklenti kullanmak yerine onun kendi yeteneklerini kullanmaktan geçer. Bunu bir örneği de günlüklerimizin en önemli fonksiyonlarından birisi olan “sayfalama” konusunda geçerlidir.

Sayfalama (Pagination) sitemizin erişebilirliğini büyük ölçüde artırmaktadır ve bu amaç için üretilmiş onlarca eklenti mevcuttur. Belki de bunlardan en meşhuru Pagebar eklentisidir. Ancak gözden kaçan bir şey var ki o da WordPress’in kendi yapısı ve yetenekleridir. Öyle ki WordPress zaten kendi içinde sayfalama yapmaktadır. Yönetim panelinde her sayfada kaç yazı görüntüleneceğini belirtirsiniz. WordPress bunu gerçekleştirir ve üstüne $paged gibi bir değişken üreterek o an bulunduğunuz sayfanın hangi sayfa olduğunu kod olarak size verir. Artık bu dakikadan sonra o değişkeni kullanarak sitede bu sayfalamayı görüntülemek kalır. İşte bu son temel amaç için bir eklenti kullanmak yerine kendimiz kısa bir kodla işlemi çözebiliriz.

Eklentisiz Sayfalama

Eklenti kullanmadan sayfalama yapmak için öncelikle aşağıdaki PHP kodunu temamızın functions.php dosyasına ekliyoruz.

PHP

PHP
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
34
35
36
<?php function yakuter_sayfalama($pages = '', $range = 2)
{  
     $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'>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>«</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹</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)."'>›</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>»</a>";
         echo "</div>\n";
     }
} ?>

Yukarıdaki fonksiyon çağırıldığında aşağıdaki gibi bir HTML sonucu görünecektir.

HTML

XHTML
1
2
3
4
5
6
7
8
9
10
11
<div class="pagination">
<span class="current">1</span>
<a href="https://www.yakuter.com/page/2/" class="inactive" >2</a>
<a href="https://www.yakuter.com/page/3/" class="inactive" >3</a>
<a href="https://www.yakuter.com/page/4/" class="inactive" >4</a>
<a href="https://www.yakuter.com/page/5/" class="inactive" >5</a>
<a href="https://www.yakuter.com/page/6/" class="inactive" >6</a>
<a href="https://www.yakuter.com/page/7/" class="inactive" >7</a>
<a href="https://www.yakuter.com/page/2/">›</a>
<a href="https://www.yakuter.com/page/66/">»</a>
</div>

Yukarıdaki HTML çıktısını yani sayfalamamızı şekilldendirmek için temamızın CSS dosyasına aşağıdaki kodu ekliyoruz.

CSS

CSS
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
.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 sayfalamanın bulunacağı yere (genellikle index.php içinde döngünün dışına) aşağıdaki kodu ekleyerek sayfalama özelliğini çağırıyoruz.

PHP
1
<?php yakuter_sayfalama(); ?>

Fonksiyonumuzda sayfalama içinde kaç rakamın görüneceğini ise şu şekilde belirtebilirsiniz.

PHP
1
<?php yakuter_sayfalama('','6'); ?>

Hepsi bu kadar! Ayrıca merak ediyorsanız söyleyeyim, yakuter.com‘da da bu kodu kullanmaktayım ;)

Kaynaklar

  • How to add WordPress pagination without a plugin
  • How to build a wordpress post pagination without plugin
  • Native pagination without plugins in WordPress
Tem 6, 2013Erhan Yakut
Cloud Sunucu


hosting

Wordpress'te Üyelerden Farklı Bilgiler İstemekWordpress'te Eklenti Kullanmadan Benzer Yazıları Gösterin
You Might Also Like
 
WordPress’te Bağlantıları Gösterme
 
WordPress 3.0 ile Çoklu Blog Oluşturmak
Erhan Yakut
7 years ago 4 Comments Wordpresseklentisiz, Wordpress5,823
Sponsorlar

sponsor

sponsor

sponsor

sponsor
Bağlantılar
  • Beyazıt Kölemen
  • Domatessuyu
  • Lezzetli Robot Tarifleri
  • Ofizzo
  • PHP Dersleri
  • Wordpress Hosting
Random Posts
HTML Listeleme Etiketine Görsel Eklemek
Türkiye’de Site Barındırma
bbcode Mantığı ve Bir Örnek
Kurumsal SEO Nedir?
ezSQL Veritabanı Sınıfının Kullanımı
sdafasdf
Hakkımda

Bilişim Teknolojileri alanında içerik üretmek üzere oluşturulmuş olan Yakuter.com 2006 yılında Erhan Yakut tarafından hayata geçirilmiştir. devamını okuyun…

CLOUD SUNUCU DESTEĞİ
2006-2020 © Yakuter