WordPress temanıza sayısal sayfalandırma eklemek mi istiyorsunuz?
Varsayılan olarak, WordPress temaları arşiv sayfalarının altına bir Sonraki / Önceki bağlantıları ekler. Sorun şu ki bunlar pek kullanıcı dostu değil. Bu nedenle birçok popüler blog, ziyaretçilerin arşiv sayfalarında gezinmesini kolaylaştırmak için sayısal sayfalandırma kullanır.
Bu makalede, WordPress temanıza nasıl sayısal sayfalandırma ekleyeceğinizi göstereceğiz.
WordPress Temanıza Neden Sayısal Sayfalandırma Eklemelisiniz?
Çoğu temada yazıların listesini gösteren bir arşiv sayfası bulunur. Daha fazla WordPress blog yazısı yayınladıkça, arşiv sayfanız birden fazla sayfaya yayılacaktır.
Sayfalandırma bağlantıları ziyaretçilerin arşiv sayfaları arasında hareket etmesine yardımcı olur ve genellikle WordPress web sitenizin alt kısmında görünür.
Bazı WordPress temaları sayfalama için ‘Eski yazılar’ ve ‘Yeni yazılar’ bağlantılarını kullanır. Ancak bu, ziyaretçinin yalnızca bir sayfa ileri ve geri gitmesini sağlar.
Ayrıca ziyaretçinin arşivdeki mevcut konumunu da göstermez. Bu, ziyaretçilerin blogunuzun arşivinde gezinmesini zorlaştırabilir.
İşte burada sayısal sayfalandırma devreye girer.
‘Daha Eski’ ve ‘Daha Yeni’ bağlantılarını göstermek yerine, sayısal sayfalandırma, ziyaretçilerin arşivdeki belirli bir sayfaya atlamasını sağlayan bir dizi sayı gösterir.
Sayısal sayfalandırma, geçerli sayfa numarasını göstermek için vurgular veya farklı renkler de kullanabilir, böylece ziyaretçi her zaman arşivin tam olarak neresinde olduğunu bilir.
WPBeginner’da sayısal sayfalandırma kullanıyoruz ve mevcut sayfa numarasını turuncu renkle vurguluyoruz. Ayrıca ziyaretçinin mevcut sayfasını çevreleyen 4 sayfaya doğrudan bağlantılar sağlıyoruz.
Aşağıdaki resimde de görebileceğiniz gibi, ziyaretçilerin en eski gönderilerimizi hızlı ve kolay bir şekilde görebilmeleri için arşivimizdeki son sayfaya bir bağlantımız bile var.
Deneyimlerimize göre, bu tür bir sayısal sayfalandırma, varsayılan ‘Eski yazılar’ ve ‘Yeni yazı’ bağlantılarına kıyasla sitenizde gezinmeyi kolaylaştırır.
WordPress temanızda ‘Daha Eski’ ve ‘Daha Yeni’ sayfalandırması varsa, bunu her zaman sayısal sayfalandırma ile değiştirmenizi öneririz.
Bu kılavuzda, WordPress temanıza sayısal sayfalandırma eklemenin iki farklı yolunu ele alacağız. Doğrudan belirli bir yönteme atlamayı tercih ederseniz, aşağıdaki bağlantıları kullanabilirsiniz.
- Yöntem 1. WP-PageNavi kullanarak WordPress’te sayısal sayfalandırma nasıl eklenir
- Yöntem 2. WordPress temanıza manuel olarak sayısal sayfalandırma nasıl eklenir
Yöntem 1. WP-PageNavi kullanarak WordPress’te Sayısal Sayfalandırma Nasıl Eklenir
WordPress’te sayısal sayfalandırma eklemenin en kolay yolu WP-PageNavi eklentisini kullanmaktır.
Bu eklentiyi kullanmak için temanızın kodunda yine de bazı değişiklikler yapmanız gerekecektir, ancak WP-PageNavi sitenizin sayfalandırması üzerinde tam kontrol sağladığından tam kod yönteminden çok daha kolaydır.
Yapmanız gereken ilk şey WP-PageNavi eklentisini kurmak ve etkinleştirmek. Daha fazla ayrıntı için lütfen bir WordPress eklentisinin nasıl kurulacağına ilişkin adım adım kılavuzumuza bakın.
Eklentiyi etkinleştirdikten sonra, eklenti ayarlarını yapılandırmak için Ayarlar ” PageNavi bölümüne gidin.
Burada, varsayılan sayfalandırma metinlerinden herhangi birini kendi ifadelerinizle değiştirebilirsiniz. Örneğin, web sitenizin ‘İlk Sayfa’ ve ‘Son Sayfa’ bağlantıları için kullandığı metni değiştirebilirsiniz.
Sayısal sayfalandırma bağlantılarını da özelleştirebilirsiniz.
‘Gösterilecek Sayfa Sayısı’ bölümünde, eklentinin web sitenizin sayfalandırma bölümünde kaç sayfa göstereceğini seçebilirsiniz.
Bu varsayılan olarak 5 olarak ayarlanmıştır, yani WP-PageNavi 5 sayfaya doğrudan bağlantı gösterecektir.
Aşağıdaki ekran görüntüsünde de görebileceğiniz gibi, 4. sayfadaysanız 2, 3, 4, 5 ve 6. sayfalara bağlantılar göreceksiniz.
Daha fazla veya daha az sayfa göstermek isteyebilirsiniz. Bu değişikliği yapmak için ‘Gösterilecek Sayfa Sayısı’ alanına yeni sayıyı yazmanız yeterlidir.
Varsayılan olarak, eklenti birkaç büyük sayı gösterecektir. Bu, ziyaretçilerin tek bir tıklamayla birden fazla sayfada ilerlemesini sağlar.
Varsayılan olarak, eklenti her seferinde 10 artan üç büyük sayı gösterir. Örneğin, 10, 20 ve 30.
Farklı bir aralık mı kullanmak istiyorsunuz, örneğin 5 veya 20 gibi? O zaman yeni aralığı ‘Daha Büyük Sayfa Numaralarını Katları Halinde Göster’ alanına yazmanız yeterlidir.
Her WordPress sitesi farklıdır, bu nedenle hangi sayfalama ayarlarının sizin için en iyi sonucu verdiğini görmek için farklı ayarları denemek iyi bir fikirdir.
WP-PageNavi ayarlarında herhangi bir değişiklik yaptıysanız, sayfanın en altına kaydırmayı ve Değişiklikleri Kaydet düğmesine tıklamayı unutmayın.
Ardından, WordPress temanıza bir şablon etiketi eklemeniz gerekir. Bunu yapmak için bir alt tema oluşturmanızı ve ardından alt temanın kodunu düzenlemenizi öneririz.
Bir alt tema oluşturarak, özel sayısal sayfalamanızı kaybetmeden WordPress temanızı güvenli bir şekilde güncelleyebilirsiniz. Daha fazla bilgi edinmek için WordPress alt temasının nasıl oluşturulacağına ilişkin adım adım kılavuzumuza göz atın.
İster ana ister alt temayı düzenlemeyi seçin, bir FTP istemcisine ihtiyacınız olacaktır. FTP’yi ilk kez kullanıyorsanız, sitenize FTP kullanarak nasıl bağlanacağınıza ilişkin eksiksiz kılavuzumuza bakabilirsiniz.
WordPress hosting hesabınıza FTP aracılığıyla bağlandığınızda, WordPress tema kodunuzu düzenlemeye hazırsınız demektir.
Bu adımlar WordPress temanıza bağlı olarak değişecektir. Ancak, genellikle index.php veya archive.php dosyanızdaki kodu ve WordPress temanızdaki diğer arşiv şablonu dosyalarını düzenlemeniz gerekecektir.
Basitçe bu dosyaları açın ve ardından previous_posts_link ve next_posts_link etiketlerini arayın.
Bu etiketleri bulursanız, bunları aşağıdaki kod parçacığı ile değiştirin:
<?php wp_pagenavi(); ?>
Bazı temalarda previous_posts_link veya next_posts_link etiketi bulunmayabilir.
Temanızda bu etiketleri bulamazsanız, bunun yerine the_posts_navigation etiketini arayın. Örneğin, Twenty Twenty-One temasının archive.php dosyasında aşağıdakileri bulabilirsiniz:
<?php /*twenty_twenty_one_the_posts_navigation();*/
Daha sonra devam edebilir ve bu satırı aşağıdaki kod parçacığı ile değiştirebilirsiniz:
<?php wp_pagenavi(); ?>
Bu değişiklikleri yaptıktan sonra kaydedin ve ardından açık WordPress tema dosyalarını kapatın.
Şimdi, WordPress arşiv sayfanızı ziyaret ederseniz, yeni sayısal sayfalandırmanızı web sitenizde canlı olarak görmelisiniz.
Bu noktada, temanızı veya web sitesi markanızı daha iyi tamamlaması için sayısal sayfalandırmanın rengini ve stilini değiştirmek isteyebilirsiniz.
Bunu eklentinin kodunu düzenleyerek yapabilirsiniz.
Ancak, WP-PageNavi kodunu temanızın style.css dosyasına yapıştırmanızı ve ardından değişikliklerinizi tema dosyasının içinde yapmanızı öneririz. Bu, WP-PageNavi eklentisini güncellediğinizde özelleştirmelerinizi kaybetmeyeceğiniz anlamına gelir.
Eklenti kodunuzu kopyalamak için Ayarlar ” PageNavi bölümüne gidin. Daha sonra ‘Use pagenavi-css.css’ bölümünü bulabilir ve yanındaki ‘No’ radyo düğmesine tıklayabilirsiniz.
Değişikliklerinizi kaydetmek için ‘Değişiklikleri Kaydet’ düğmesine tıklamayı unutmayın.
Ardından, Eklentiler ” Eklenti Dosyası Düzenleyicisi‘ne gidin.
Daha sonra ‘Düzenlenecek eklentiyi seç’ açılır menüsünü açabilir ve ‘WP-Page Navi’yi seçebilirsiniz. Bundan sonra, ‘Seç’e tıklamaya hazırsınız.
Sağ taraftaki menüde pagenavi-css.css dosyasına tıklayın.
Ardından, devam edin ve bu dosyadaki tüm kodu kopyalayın.
Ardından, Görünüm ” Tema Dosyası Düzenleyicisi‘ne gidin.
Sağ taraftaki menüde temanızın style.css dosyasına tıklayın.
Artık pagenavi-css.css kodunuzu temanın style.css dosyasına yapıştırabilir ve değişikliklerinizi yapmaya başlayabilirsiniz.
Bir örneğe bakalım. İşte temanızın style.css dosyasına ekleyebileceğiniz sayısal sayfalama kodunun değiştirilmiş bir sürümü:
wp-pagenavi {
clear: both;
}
.wp-pagenavi a, .wp-pagenavi span {
color: #FFF;
text-decoration: none;
background-color:#6FB7E9;
border: 1px solid #B2D1E5;
padding: 5px 5px;
margin: 2px;
}
.wp-pagenavi a:hover, .wp-pagenavi span.current {
border-color: #E9F2F9;
background-color:#6FB7E9;
}
.wp-pagenavi span.current {
font-weight: bold;
background-color:#3C8DC5;
}
Aşağıdaki resimde, bu sayısal sayfalandırmanın sitenizde nasıl görüneceğini görebilirsiniz.
WordPress web sitenizde neyin en iyi göründüğünü görmek için farklı stilleri denemeye değer.
Sayısal sayfalandırmanızın nasıl göründüğünden memnun olduğunuzda, değişikliklerinizi kaydetmek için Dosyayı Güncelle düğmesine tıklayın.
Yöntem 2. WordPress Temanıza Manuel Olarak Sayısal Sayfalandırma Nasıl Eklenir
Diğer bir seçenek de kod kullanarak WordPress temanıza manuel olarak sayısal sayfalandırma eklemektir.
Birçok WordPress teması yerleşik ‘Daha Eski’ ve ‘Daha Yeni’ bağlantıları veya varsayılan sayısal sayfalandırma ile birlikte gelir. Örneğin popüler Astra teması, aşağıdaki resimde görebileceğiniz gibi arşiv sayfalarınıza otomatik olarak kendi sayısal sayfalandırmasını ekler.
Bir temanın yerleşik sayfalandırmasını özelleştirmek için bu yöntemi kullanabilirsiniz. Örneğin, sitenize daha iyi uyması için stili değiştirebilirsiniz.
Sayısal sayfalamayı manuel olarak eklemek için temanızın functions.php dosyasını açın. Burada bir FTP istemcisi ya da WordPress hosting cPanel’inizin dosya yöneticisini kullanabilirsiniz. FTP kullanıyorsanız, sitenize FTP kullanarak nasıl bağlanacağınıza ilişkin eksiksiz kılavuzumuza bakabilirsiniz.
Sitenize başarıyla bağlandıktan sonra functions.php dosyasını açın ve aşağıdaki kodu ekleyin:
function wpbeginner_numeric_posts_nav() {
if( is_singular() )
return;
global $wp_query;
/** Stop execution if there's only 1 page */
if( $wp_query->max_num_pages <= 1 )
return;
$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
$max = intval( $wp_query->max_num_pages );
/** Add current page to the array */
if ( $paged >= 1 )
$links[] = $paged;
/** Add the pages around the current page to the array */
if ( $paged >= 3 ) {
$links[] = $paged - 1;
$links[] = $paged - 2;
}
if ( ( $paged + 2 ) <= $max ) {
$links[] = $paged + 2;
$links[] = $paged + 1;
}
echo '<div class="navigation"><ul>' . "\n";
/** Previous Post Link */
if ( get_previous_posts_link() )
printf( '<li>%s</li>' . "\n", get_previous_posts_link() );
/** Link to first page, plus ellipses if necessary */
if ( ! in_array( 1, $links ) ) {
$class = 1 == $paged ? ' class="active"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
if ( ! in_array( 2, $links ) )
echo '<li>…</li>';
}
/** Link to current page, plus 2 pages in either direction if necessary */
sort( $links );
foreach ( (array) $links as $link ) {
$class = $paged == $link ? ' class="active"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
}
/** Link to last page, plus ellipses if necessary */
if ( ! in_array( $max, $links ) ) {
if ( ! in_array( $max - 1, $links ) )
echo '<li>…</li>' . "\n";
$class = $paged == $max ? ' class="active"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
}
/** Next Post Link */
if ( get_next_posts_link() )
printf( '<li>%s</li>' . "\n", get_next_posts_link() );
echo '</ul></div>' . "\n";
}
Bu kod, WordPress temanızda göstermeniz için hazır olan sayfa sayısını alır.
Sonraki adımlar temanıza bağlı olarak değişecektir.
Temanızda yerleşik bir varsayılan sayfalandırma biçimi yoksa, aşağıdaki şablon etiketini index.php, archive.php, category.php veya sayısal sayfalandırma göstermek istediğiniz herhangi bir sayfaya ekleyebilirsiniz.
<?php wpbeginner_numeric_posts_nav(); ?>
Bu kodu nereye eklediğinizin sayısal sayfalandırmanın web sitenizde nerede görüntüleneceğini etkileyeceğini unutmayın.
Tipik olarak, sayfalandırmayı arşiv sayfalarınızın altında göstermek isteyeceksiniz, bu nedenle genellikle şablon etiketini altbilgi kodunuza eklemek isteyeceksiniz.
Temanızda halihazırda ‘Eski Yazılar’ ve ‘Yeni Yazılar’ bağlantıları gibi bir tür sayfalandırma var mı?
Bu durumda, sayfalandırma kodunu bulmanız ve yukarıdaki kod parçacığı ile değiştirmeniz gerekir.
Örneğin, Ashe en iyi ücretsiz WordPress blog temalarından biridir ve arşiv sayfalarınıza ‘İlk’ ve ‘Son sayfa’ sayfalandırma bağlantılarını zaten ekler.
Bu yerleşik bağlantıları sayısal sayfalandırma ile değiştirmek için temanın templates/grid.php ve templates/blog-pagination.php dosyalarını düzenlemeniz gerekir.
Bu dosyaların her birinde aşağıdaki bölümü bulmanız yeterlidir:
<?php get_template_part( 'templates/grid/blog', 'pagination' ); ?>
Daha sonra devam edebilir ve bu satırı aşağıdaki kod parçacığı ile değiştirebilirsiniz:
<?php wpbeginner_numeric_posts_nav(); ?>
Kodu ekledikten sonra değişikliklerinizi kaydetmeyi unutmayın.
Bir sonraki adım, özel sayısal sayfalamanızı şekillendirmektir.
Ziyaretçilerin arşivde gezinmesine yardımcı olmak için, geçerli sayfa numarasını farklı bir renkle vurgulayacağız. Bunu yapmak için temanızın style.css dosyasını açın ve ardından aşağıdaki kodu bu dosyaya yapıştırın:
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
color: #fff;
text-decoration:none;
}
.navigation li {
display: inline;
}
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
background-color: #6FB7E9;
border-radius: 3px;
cursor: pointer;
padding: 12px;
padding: 0.75rem;
}
.navigation li a:hover,
.navigation li.active a {
background-color: #3C8DC5;
}
Tüm bunlardan sonra, Dosyayı Güncelle düğmesine tıklayarak değişikliklerinizi kaydedin.
Şimdi arşiv sayfasını ziyaret ederseniz, sayısal sayfalandırmayı web sitenizde canlı olarak göreceksiniz.
Umarız bu makale WordPress temanıza nasıl sayısal sayfalandırma ekleyeceğinizi öğrenmenize yardımcı olmuştur. WordPress ile çevrimiçi blog yazarak para kazanmanın yolları ve herhangi bir kod yazmadan özel bir WordPress temasının nasıl oluşturulacağı hakkındaki rehberimizi de inceleyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Sujal
There’s little bug in last lines which shows next link. You’re missing $ sign at two places get_next_posts_link() . Can you please fix that so code works well for new visitors
/** Next Post Link */
if ( $get_next_posts_link() )
printf( ‘%s’ . “\n”, $get_next_posts_link() );
Sandipan
Not working. . After adding the code index.php links not working
WPBeginner Support
Your theme may have some custom styling, you would want to reach out to your theme’s specific support and they should be able to assist.
Yönetici
Quy
thanks.
Normally, home.php will show up the loop content for Post page, but since my theme does not provide home.php by default so I put the wpbeginner_numeric_posts_nav(); at index.php (below endwhile;) and it works.
WPBeginner Support
Thanks for sharing how you were able to solve the issue
Yönetici
FloJDM
Very Helpful Thx !
WPBeginner Support
You’re welcome
Yönetici
Alexandre
Awesome article, simple and straight to the point!
It worked perfectly for me, thanks a lot!!
WPBeginner Support
Glad our guide was helpful
Yönetici
ModGirl
I’m using the wordpress theme “X Blog” and I’m trying to figure out how to add this to that theme. everything I try keeps giving me errors. not sure why the theme won’t work with this. any help would be appreciated. thanks
Adam
This is a really useful tutorial, thanks. I used the genesis code example with success!
My one issue was that simply copying and pasting the code from this site caused an encoding error for where the ellipses go in the numbered pagination. So on the site it displayed a diamond/question mark character instead of the ellipsis. I ended up using the HTML Entity (decimal) ellipsis: … instead which fixed this error. This only occurred on one of the two sites implemented this code on probably due to differences in meta charset or something.
Ilya
Greetings from 2018! I have something cool for you, WordPress core the_posts_pagination() function.
jagadeesh
i have added the code but displaying at the top of website
Sijo
Pagination not working after page2. It’s showing 404 page when click 3 ,4 etc… I have used the same code above. How can i resolve this ?
Jean Braithwaite
I am using your manual method for pagination, and you say “add the following template tag in your theme’s index.php, archive.php, category.php, and any other archive page template”.
The site is a regular website along with a blog which uses a custom post type.
It worked well on my archive.php page, but I would also like to use it on my blog page, which is a page template, page-blog.php. I can’t get it to work there at all. Why is that? Is there something I can do to get it working?
ziru
hello, I added to some templates and my wordpress couldn’t work anymore, not even login in and my homepage turn to a blank page and seems the whole website break down, what can I do?
Turab
Love u for this. U’re a lifesaver.
Subroto
Thank you very much for this post.
Ingy Anees
This is working fine with me in custom post type but can’t get it to work with search results .. nothing is shown at all. and advice ?
souno
Very nice article and i have a question.
How to show total number of pages at last? In your demo it shows “9”
Thank You!
renee
awesome code – worked like a charm! thank you for sharing it
Azamat
How can I add pagination to the custom taxonomy terms list?
Andy
Like Rajath I had a few problems with the pagination not rendering well on mobiles. In my case the lines overlapped. I resolved this by adding a line height to the CSS:
line-height: 2.5em;
mostafa
Hi, I ‘ve used this code for my theme (without wp-nav plugin) ,it works other pages except in front page .what is exactly the problem?
Rajath
Hi i`m using this pagination in my theme and it works fine in all pages and categories except in the pages where i`m using custom wp_query. I`ve read that you are using a code similar to the one in genesis framework and i`ve used wp_reset_query() but it isn`t working. Thanks in advance for the help.
anuj sharma
hi
i m using your given code and paste in function .php and also add css in style.css but this shows pagination design but its not working
JM
Hello! First off, I want to thank you for posting this. I know that this post is now pretty old, but it is still very useful!
The pagination displays and functions fine for the most part; but the first and last page links are missing for me. It does not matter which page I am on (first, second, third, etc.), no first page or last page links show up. Any ideas on how I can fix this?
Thanks in advance for any help!
Syed Hamza
Numeric Pagination shows only on PC but doesn’t show on mobile. I want to show this pagination on both versions.
How I can fix it?
JeffD
Thank you so much for the excellent tutorial. I want to use the non-plugin solution (the php script), but with no truncation/ellipses for page links (instead of 1…2 3 4 5 6…10, I want to just show all pages all the time – 1 2 3 4 5 6 7 8 9 10). How can I modify the script to do this? Should be easy for you experts but not for me! Thank you in advance for any helps!
Nelson
This code is not working for me, are there any pointers
Youssef
Hi I want return default wp pagination in my theme” freshlife by theme junkie I don’t Like the numeric pagination because it show the total posts in my website . please wpbeginne help
Bilal
i want to paginate my products how can i do it
Rajath
Hi, NIce tutorial and your website have helped me in many issues while developing my own theme. I have opted for the manual pagination shown here instead of plugin. But the pagination is not responsive and looks bad when the screen size is reduced. How to make it responsive or are there any other alternatives(no plugins please).I`m not going to publish this theme so i`m building it just to suit my need…
WPBeginner Support
Look at your WordPress theme’s stylesheet. Study how your theme handles responsiveness. Some themes use media queries to detect screen width and then adjust different elements accordingly. Some themes use relative widths to make sure that all elements inside their design layout are responsive to the screen width.
Yönetici
Rajath
I’m developing the theme. I’m unable to make the pagination responsive. So I just removed the padding around the links which make them to look like a button. Instead I left them like numbers which works fine in small screens too. Thank You for the reply.
javad
hi
i used first code in function but WP language changed to unreadable words why????
Gabriel Tellez
Thanks man, is great.
James
I’m trying to remove the pagination from my homepage found below each summary post, to me it doesn’t look great, is there a way to do this.
WPBeginner Support
Please contact your WordPress theme developer. They will be able to guide you better.
Yönetici
Aryan
Actually i am new to wordpress but i know php good……i want to add a pagination from custom table in data base……
Fasih
the numbered pagination without the plugin is working fine on localhost but when i upload the files i cant see anything but when i check the inspect element, the only thing i found was an empty div containing the classes but with nothing inside it. i have uploaded all the files correctly and double checked but not successful. please guide me
Abraham
Cool!
Marco Riesco
Excelent!! thanx
Moustafa
This script does not work in the new WordPress 4.3.1
omdat bij de oude versie heeft die script wel gewerkt en nu niet meer
Pleas help…