Eklentiler

WordPress Eklentisiz Sayfalama Nasıl Yapılır?

WordPress eklentisiz sayfalama tekniği, site hızını artırmak ve eklenti bağımlılığını azaltmak isteyen kullanıcılar için mükemmel bir çözümdür. Sayfalama (pagination), özellikle blog listelerinde ya da özel sorgu sonuçlarında kullanıcı deneyimini büyük ölçüde etkiler. Bu yazıda, WordPress’te eklenti kullanmadan nasıl işlevsel bir sayfalama sistemi kuracağınızı adım adım anlatacağız.

Sayfalama Nedir?

Sayfalama, içeriklerin belli sayfa sayısına bölünerek listelenmesidir. Örneğin 100 yazınız varsa, bunları 10’ar 10’ar göstermek istiyorsanız toplam 10 sayfa oluşur.

Kullanıcı dostu ve SEO açısından etkili bir navigasyon sunar:

  • Ziyaretçiler tüm yazıları kolayca gezebilir.

  • Arama motorları, içeriklerinizi daha düzenli tarar.

  • Ana sayfa yükü hafifler.

Neden WordPress Eklentisiz Sayfalama Tercih Edilmeli?

Eklenti kullanmak hızlı ve kolay görünse de, her yeni eklenti:

  • Siteyi yavaşlatabilir,

  • Çakışmalara yol açabilir,

  • Güvenlik açıklarına sebep olabilir.

wordpress eklentisiz sayfalama ise:

  • Daha hızlı yüklenir

  • Gereksiz kod yüklemesi yapmaz

  • Tema içine tam entegredir

  • Daha fazla kontrol imkanı sunar

WordPress’te Varsayılan Sayfalama Fonksiyonları

WordPress’te sayfalama için iki temel yöntem vardır:

  1. next_posts_link() ve previous_posts_link()

  2. paginate_links() — daha özelleştirilebilir ve SEO uyumlu

Bu yazıda paginate_links() fonksiyonu ile tamamen özelleştirilebilir bir eklentisiz sayfalama oluşturacağız.

Eklentisiz Sayfalama Nasıl Eklenir?

1. functions.php Dosyasına Kod Ekleyin

Aşağıdaki fonksiyon, temanızda sayfalama için kullanılabilir:

php
function ozel_sayfalama() {
global $wp_query;

$big = 999999999;

echo paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_text' => '« Önceki',
'next_text' => 'Sonraki »',
'type' => 'list',
));
}

Bu fonksiyonu doğrudan functions.php dosyanıza ekleyin.

2. Template Dosyanıza Fonksiyonu Çağırın

Genellikle index.php, archive.php veya home.php içinde döngü sonuna şu kodu eklemeniz yeterlidir:

php
<?php ozel_sayfalama(); ?>

Böylece, yazı listesi sayfalarınızda alt kısımda eklentisiz sayfalama çalışacaktır.

3. CSS ile Görsellik Katın

css
.page-numbers {
display: inline-block;
padding: 8px 12px;
margin: 0 3px;
background: #f1f1f1;
color: #333;
text-decoration: none;
}

.page-numbers.current {
background: #0073aa;
color: white;
}

Bu stil kodlarını style.css dosyanıza ekleyerek modern bir sayfalama görünümü elde edebilirsiniz.

SEO Açısından Eklentisiz Sayfalama

wordpress eklentisiz sayfalama sadece hız değil, SEO açısından da avantaj sağlar. Neden mi?

  • Sayfa numaraları taranabilir HTML öğeleri olur.

  • Canonical ve rel=“next/prev” etiketleri daha doğru çalışır.

  • Gereksiz JS/CSS yüklenmediği için sayfa skorları yükselir.

Ek olarak, paginate_links() fonksiyonu SEO dostu URL’ler üretir.

Sayfalama İçin Alternatif Örnekler

Sayfa Sayısını Belirtme

İstediğiniz sayfada kaç içerik listeleneceğini ayarlamak için:

php
query_posts(array(
'posts_per_page' => 5,
'paged' => get_query_var('paged')
));

Bu yapı, paginate_links() ile birlikte çalışır ve içerikleri 5’erli sayfalara böler.

AJAX Sayfalama (İleri Seviye)

Eğer JavaScript bilginiz varsa, eklentisiz bir şekilde AJAX sayfalama da kurabilirsiniz. Bu, sayfa yenilemeden içeriklerin yüklenmesini sağlar.

Temel yapı:

  • Bir jQuery AJAX isteği oluşturulur

  • functions.php içinde ajax işlemine özel bir wp_ajax_ fonksiyonu tanımlanır

  • Geriye wp_query ile dönen HTML gönderilir

Bu yöntem, wordpress eklentisiz sayfalama isteyen geliştiriciler için ideal ancak orta-ileri düzey bilgi gerektirir.

Temaya Göre Sayfalama Uyarlaması

Her tema farklı loop yapısına sahip olabilir. Sayfalama fonksiyonunu:

  • index.php

  • archive.php

  • category.php

  • search.php

gibi dosyaların içerik döngüsünden sonra yerleştirin.

Kod:

php
<?php if (function_exists('ozel_sayfalama')) {
ozel_sayfalama();
} ?>

Gutenberg Blok Editörde Sayfalama Kullanımı

Gutenberg ile içerik listesi oluşturan bazı bloklar (örneğin sorgu döngüsü bloğu), dahili sayfalama sunar. Ancak özel şablonlar kullanıyorsanız, yukarıdaki PHP yöntemleri daha etkilidir.

Sayfalama Hataları ve Çözümleri

SorunÇözüm
Sayfalama çalışmıyorfunctions.php kodlarının doğru yerde olduğundan emin olun.
Sayfa 2 açılmıyorKalıcı bağlantıları yeniden kaydedin. (Ayarlar > Kalıcı Bağlantılar > Kaydet)
URL’ler bozukbase parametresi düzgün ayarlanmalı
Tüm yazılar tek sayfadaquery_posts veya WP_Query yapısında paged tanımlanmalı

Bazı kullanıcılar kodu karmaşık bulabilir. Alternatif olarak kısa kod ile kullanılabilecek fonksiyon da tanımlayabilirsiniz:

php
function kisa_sayfalama_shortcode() {
ob_start();
ozel_sayfalama();
return ob_get_clean();
}
add_shortcode('sayfalama', 'kisa_sayfalama_shortcode');

Kullanımı:

plaintext
[sayfalama]

Bu yöntemle sayfalama işlemini yazılarınızda bile kolayca uygulayabilirsiniz.

Sıkça Sorulan Sorular

WordPress eklentisiz sayfalama yeni başlayanlar için uygun mu?

Evet. Temel PHP bilginiz varsa, 5-10 dakikada uygulanabilir.

Eklentisiz sayfalama SEO uyumlu mu?

Evet. paginate_links() fonksiyonu SEO dostu URL’ler ve yapılar oluşturur.

Neden eklenti yerine elle kod yazmalıyım?

Daha az yük, daha hızlı site ve daha fazla kontrol için.

AJAX sayfalama zor mu?

Orta seviye JavaScript bilgisi ile yapılabilir. Ama temel HTML/PHP sayfalama çoğu kullanıcı için yeterlidir.

Sonuç: WordPress Sayfalama Eklentisiz de Mükemmel Olabilir

wordpress eklentisiz sayfalama, hızlı, hafif ve güvenli bir çözüm arayan herkes için ideal bir yöntemdir. Eklentiye ihtiyaç duymadan sadece birkaç satır PHP ve CSS ile profesyonel görünümlü bir sayfa numaralandırma sistemi oluşturabilirsiniz. Özellikle performansa ve SEO’ya önem veren WordPress kullanıcıları için vazgeçilmez bir teknik olarak mutlaka uygulanmalıdır.

Diğer WordPress Blogları: Yazı içinde Kod Göstermek

Daha Fazla Göster

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı