16 Haziran 2007

WP ipucu: Yazıları sayfalara bölelim

WordPress Yorum Ekle

WordPress'de bazen yazdığımız yazılar oldukça uzun olabiliyor. Bu durumda yazıların okunabilirliği azalıyor. Halbuki yazımızı sayfalara bölebilsek sanırım çok hoş olacaktır. Bunu ilk olarak Ajax-tr'de görmüştüm. Bunu nasıl yapmışlar diye çok düşündüm, eklentiyle mi yoksa WP Hack ile mi yapmışlar diye çok düşündüm. Meğer çözüm çok basitmiş ve ben tesadüfen Quicktags.js dosyasını incelerken farkettim.

Çözüm:Yazı yazarken kod bölümünden yazıyı bölmek istediğimiz yerlere <!--nextpage--> yazmak gerekiyor. Aynı <!--more--> ifadesi gibi yazdığımızda WP yazıları otomatik olarak sayfalara ayırıyor. İsterseniz wp-includes\js\Quicktags.js dosyasını açıp, <!--nextpage--> ifadesini aratıp, bu kelimenin geçtiği bölümün başındaki ve sonundaki yorum ifadelerini kaldırırsanız, editör'e page isimli bir quicktag ekleyebilirsiniz. Eğer bunları yapmanıza ve yazıları sayfalara bölmenize rağmen yazınızın hemen altında "Sayfalar: 1 2 3" şeklinde sayfa numaraları görünmez ise, temanızın Tekil Sayfa (benimkinde single.php) dosyasını açıp, bu ifadenin çıkmasını istediğiniz yere aşağıdaki kodu yazın.

link_pages('< p>< strong>Sayfalar: < /strong> ', '< /p>', 'number');
Yukarıdaki kod yeni sürümlerde yerini wp_link_pages fonksiyonuna bırakmış durumda. Bu fonksiyon bize daha fazla kontrol sağlamaktadır. Fonksiyonu tema içerisinde aşağıdaki gibi ekleyerek, kullanabilirsiniz. Kodu varsayılan temanın single.php dosyasında bulabilirsiniz.

  1. <?php wp_link_pages(array('before' => '<p><strong>Sayfalar:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

Bu kod ile elde ettiğiniz sayfaları biçimlendirmek isteyebilirsiniz. Bu konu ile ilgili WordPress.org'da yazılmış olan açıklamaya ulaşmak için tıklayınız.

Bir problem olursa lütfen yorum yazarak bildiriniz.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=64.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“WP ipucu: Yazıları sayfalara bölelim” yazısı için 28 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. Hakan dedi ki:

    cok güzel uzun süre bende düşünmüştüm teşekkürler...

  2. Adem dedi ki:

    Kullanacağım/kullandığım temaları türkçeleştirirken, bu kodla çok karşılaşmıştım. Ama kullanmadığım için, bu fonksiyona yaradığını bilmiyordum 🙂 Öğrendim şimdi. Çok teşekkürler hocam, ellerinize sağlık.

  3. Levent dedi ki:

    hocam ben bunu kendi sitemde uyguladığımda hata veriyor yazılar birbirine giriyo 😡

  4. Utku Çakır dedi ki:

    Çok teşekkürler 🙂 Ben more'yi bile bilmiyordum.

  5. islamidavet dedi ki:

    teşekkürler.

  6. Cankara dedi ki:

    tema çevirisi yaparken bu kodun bu işe yaradığını anladım ancak bir türlü kullanamamıştım.. saolasın 😉

  7. Ali KARATAŞ dedi ki:

    SA. YAKUP HOCAM NASILSINIZ TATİL HENÜZ BİTMEİD HERHALDE. SON SİTE TASARIMINDA KONUŞTURMUŞSUNUZ YİNE ELİNİZE SAĞLIK

  8. Volkan dedi ki:

    /*
    edButtons[edButtons.length] =
    new edButton('ed_next'
    ,'page'
    ,''
    ,''
    ,'p'
    ,-1
    );
    */

    "bu kelimenin geçtiği bölümün başındaki ve sonundaki yorum ifadelerini kaldırırsanız." yorum ifadeleri hangileri oluyor ?

  9. Yakup Gövler dedi ki:

    /* ve */ ifadeleri yorum ifadeleridir. Bunları silmeniz ve geriye
    edButtons[edButtons.length] =
    new edButton(’ed_next’
    ,’page’
    ,’‘
    ,”
    ,’p’
    ,-1
    );
    kodlarının kalması gerekiyor.

  10. Volkan dedi ki:

    Teşekkür ederim Yakup Bey.

  11. maviimge dedi ki:

    Hocam o nextpage tagını kullandığımda sayfa numaraları görünüyor ancak tıkladığımda hata veriyor göstermiyor 1. sayfadan itibaren.

  12. maviimge dedi ki:

    Tamam hocam çözdüm ana sayfada olarak atadığım sayfada çalışmıyormuş tag. Diğer sayfalarda sorunsuz çalışıyor. Paylaşımınız için çok teşekkürler 🙂

  13. Wordpress'te Yazıları Sayfalamak | Burak Kutbay'ın Web Notları dedi ki:

    [...] PHP: <?php link_pages(’<p><strong>Sayfalar: </strong> ‘, ‘</p>’, ‘number’); yakupgövler [...]

  14. Cevat ÖZTÜRK dedi ki:

    <?php link_pages('Sayfalar: ', '', 'number'); ?> kodunu single.php dosyasında hangi kodlar arasına yerleştirmemiz gerekiyor. Çalışmalarınız için teşekkür ederim.

  15. Yakup Gövler dedi ki:

    the_content('devamı'); gibi olan kodun hemen altına yerleştirebilirsiniz. Eğer bunun hemen altına eklerseniz < ?php ve ?> kodlarını yazmanıza gerek yok.

  16. Başlıkta Sayfa Numarasını Gösterme · Yakup Gövler'in Not Defteri dedi ki:

    [...] bildiğiniz gibi uzun yazıları sayfalara bölebiliyoruz. Ancak bu google açısından tekrar eden içerik gibi görünebiliyor. Bunun önüne geçmenin en [...]

  17. gevv dedi ki:

    Teşekkürler hocam

  18. Mümin dedi ki:

    PHP:

    1.
    <?php link_pages('Sayfalar: ', '', 'number'); ?>

    Ben yukarıdaki kısmı single.php de 'number' yazan yeri pratik düşünerek 'text' olarak değiştirdim.Sonuç beklediğim gibi oldu.Yani 1,2,3, gözükükeceği yerde (Next Page)olarak değişti.Fakat ben " Next Page" yi türkçeleştirmek istedim.Temanın dosyalarının hemen hemen hepsine baktım.Bir türlü bulamadım.Aklıma gelen "wordpress" in kendiyle alakalı olabileceğini düşündüm.Yardımcı olabilecek bir arkaş varmıdır ?

  19. Yakup Gövler dedi ki:

    @Mümin, WordPress'in hangi sürümünü kullanıyorsunuz? WordPress 2.5 ya da 2.6 sürümünden itibaren link_pages fonksiyonu yerini wp_link_pages fonksiyonuna bırakmış durumda. Bu fonksiyon bize daha fazla imkan sunmakta.
    Eğer 2.5 ve üzeri bir sürüm kullanıyorsanız, varsayılan temanın single.php dosyası içerisinde bu fonksiyonun kullanımını görebilirsiniz. Ben de sizin kullanmak istediğiniz ayarı kullanarak number yerine next yazdım ve Sonraki Sayfa şeklinde bağlantılar görünür oldu, yani ingilizce olarak gelmedi. Ancak aşağıdaki gibi bir kodla istediğiniz gibi özelliştirmeniz mümkün.
    wp_link_pages(array('before' => '< *p>< *strong>Sayfalar:< */strong> ', 'after' => '< */p>', 'next_or_number' => 'next', 'nextpagelink'=>'Sonraki Sayfa', 'previouspagelink'=>'Önceki Sayfa'));
    kod içerisindeki * karakterlerini silmeyi unutmayınız.

  20. Mümin dedi ki:

    Merhaba, öncelikle teşekkür ederim.

    Ben 2.8 son versiyonunu kullanıyorum.Verdiğiniz kodu eskisiyle yer değiştirdim.Durum halloldu.Şöyle birşeyde yapabilirmiyiz: Hem rakamlar olacak (1,2,3) hem (Sonraki Sayfa) olacak.İleryenince hangi numaralı sayfada ise o koyu yada sönük kalacak? Teşekkürler.

  21. Mümin dedi ki:

    Bu arada düğmeler (nextpage) bitişik çıkıyor.

    Sayfalar: Önceki SayfaSonraki Sayfa

    Ne yapabiliriz?

  22. Yakup Gövler dedi ki:

    Ne yazık ki pagenavi eklentisinde olduğu gibi
    Sayfalar: Önceki 1 2 3 Sonraki
    şeklinde yapmak, fonksiyonun bu haliyle mümkün değil. Ancak
    Sayfalar: 1 2 3 Önceki Sonraki
    şeklinde yapmak mümkün bunun için fonksiyonu iki kere, arka arkaya uygun şekilde kullanmak mümkün. Şöyle;

    wp_link_pages(array('before' => '< *p>< *strong>Sayfalar:< */strong> < *span class="sayfalar">', 'after' => '', 'next_or_number' => 'number'));
    wp_link_pages(array('before' => ' ', 'after' => '< */span>< */p>', 'next_or_number' => 'next', 'nextpagelink'=>'Sonraki Sayfa', 'previouspagelink'=>'Önceki Sayfa '));

    Bu şekilde yukarıda verdiğim gibi bir görüntü elde edebilirsiniz. Ayrıca style.css dosyanıza aşağıdaki gibi bir ekleme ile de aktif olanı koyulaştırabilirsiniz.

    .sayfalar { font-weight:bold; }
    .sayfalar a{ font-weight:normal;}

  23. Yakup Gövler dedi ki:

    Kod içerisinde geçen Önceki Sayfa ibaresinden sonra bir boşluk bırakın. Yukarıdaki mesajımda bunun düzelmiş hali bulunmakta.

  24. Mümin dedi ki:

    Sağolun bu işimi görüyor.Sonraki Sayfa kısmını sağ köşeye alamazmıyım, aşağıdakine benzer?
    Sayfalar: 1 2 3 4 5 Önceki Sayfa Sonraki Sayfa

  25. Mümin dedi ki:

    Hocam son olarak bir şey daha soracağım.Hakkınızı helal edin.Google; sitemizde böldüğümüz yazıları, örneğin içerik şu şekilde: (konu/ist/3)Googleden ziyaretçi geldiğinde direkt olarak o sayfaya mı düşer yoksa yazının ilk başladığı yere mi düşer?

  26. Yakup Gövler dedi ki:

    Fonksiyonun bu haliyle bunu yapmak mümkün değil. Çünkü oluşturulan bağlantılarda, onları css ile biçimlendirmek için herhangi ayırıcı bir seçici yok ne yazık ki.
    Fonksiyon wp-includes/post-template.php dosyasında tanımlanmış. Bu dosya içerisinde function wp_link_pages kodunu bulup, ardından fonksiyon içerisinde, bağlantıları oluşturan kodları yeniden düzenleyerek bir şeyler yapılabilir, ancak ne yazık ki bu türden bir düzenleme sonraki WP sürümlerinde tekrar tekrar yapılmak zorunda kalınacağından uygun olmayacaktır.
    Şu an aklıma bir yöntem daha geldi ama deneyecek zamanım yok. Denediğimde eğer olursa, yeni bir yazı ile bunu anlatacağım, deneme yapmayı unutmazsam tabi.

  27. Yakup Gövler dedi ki:

    Doğrudan o sayfaya gider.

  28. Mümin dedi ki:

    Çok sağolun.Teşekkür ederim.İyi çalışmalar.