PHP: Alt Sayfaları Listelemek İçin Kısa Kod Oluşturmak İçin WordPress API'sini Kullanın

WordPress PHP'si

Şu anda kurumsal bir müşteri için oldukça karmaşık bir uygulama üzerinde çalışıyoruz. Site WordPress'te inşa ediliyor ancak tonlarca zil ve ıslık var. Genellikle, bu tür bir iş yaptığımda, özel kodu daha sonra başka sitelerde yeniden kullanmak üzere kaydetmeyi seviyorum. Bu durumda çok faydalı bir fonksiyon olduğunu düşündüm, dünya ile paylaşmak istedim. Kullanıyoruz Fusion Page Builder ile Avada WordPress teması bir ana tema olarak ve alt temamızda oldukça fazla özel kod dağıtmak.

WordPress zaten API'sinde wp_list_pages ve get_pages gibi alt sayfaları listelemek için kullanılabilen birkaç işleve sahiptir. Sorun, bir grup bilgiyle dinamik olarak bir liste oluşturmayı umuyorsanız, yeterli bilgi vermemeleridir.

Bu müşteri için, iş tanımlarını göndermek ve iş ilanlarının listesinin yayınlanma tarihine göre azalan sırada otomatik olarak oluşturulmasını istediler. Ayrıca sayfadan bir alıntı göstermek istediler.

Bu nedenle, önce sayfa şablonuna alıntı desteği eklememiz gerekiyordu. Temaları için functions.php'de şunu ekledik:

add_post_type_support ('sayfa', 'alıntı');

Daha sonra, alt sayfaların listesini, bunlara bağlantılar ve onlar için alıntılar oluşturacak özel bir kısa kod kaydetmemiz gerekiyordu. Bunu yap, kullanmalıyız WordPress Döngü. Functions.php dosyasında şunu ekledik:

// Alt Sayfaları Listede Listeleme işlevi dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Kayıt Yok', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'yayın_tarihi', 'sipariş' => 'DESC' ,); $ ebeveyn = yeni WP_Query ($ değiştirgeler); eğer ($ ebeveyn-> have_posts ()) {$ string. = $ içerik. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ dize. = ' '.get_the_title ().' '; eğer (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ dize. = ' '; sonunda; } başka {$ string = ' '. $ atts [' boşta '].' '; } wp_reset_postdata (); $ dizge döndür; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Artık kısa kod, alt sayfaları bir bağlantı ve alıntı ile göstermek için site genelinde uygulanabilir. Kullanım:

[list_subpages aclass = "button" ifempty = "Üzgünüz, şu anda herhangi bir iş ilanımız yok."] İş Listesi [/ list_subpages]

Sonuç, kariyer sayfalarının altındaki alt sayfalar olan yayınlanan işlerin güzel, temiz bir sıralanmamış listesidir.

Yayınlanmış iş yoksa (alt sayfa yoksa), aşağıdakileri yayınlayacaktır:

Üzgünüz, şu anda herhangi bir iş ilanımız yok.

Yayınlanmış işler varsa (alt sayfalar), aşağıdakileri yayınlayacaktır:

İş Listesi:

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.