WordPress’te Otomatik Bölüm Menüsü Widget Kodu Nasıl Oluşturulur

E-Niaga sitesinin veya büyük haberlerin normal bir kullanıcısıysanız, açtığınız bölümdeki tüm sayfalara bir bağlantı içeren bir bölüm menüsü olduğunu göreceksiniz. Bunlardan birini siteye eklemek, kullanıcıların ilgili içeriği bulmasına yardımcı olur ve oranınızı azaltır. Ancak, hangi kullanıcının olduğunu otomatik olarak algılayan ve onlara alakalı bağlantılar veren bir menü hazırlamak kolay değildir. Yan çubuğunuza özel bir menü widget’ı ekleyebilirsiniz, ancak bu, sitenizin her sayfasında aynı menüyü görüntüler. Peki, kullanıcı tarafından keşfedilen sitede otomatik olarak tanımlayan ve onlara bu bölümdeki başka bir sayfaya bağlantı verdiğini otomatik olarak tanımlayan bir menü nasıl eklersiniz?
Bu yazıda, bunu yapan eklentileri nasıl yazacağınızı göstereceğim. İki şey yaptı:
İlk olarak, sitenin hangi bölümünü girdiğimizi ve bu bölüm için üst seviye sayfasını tespit eder.
Ardından, en üst düzey sayfaya bir bağlantı ile en üst düzey sayfadan tüm çocuk sayfalarının bir listesini görüntüleyin.
Son olarak, bu bölüm menüsünü görüntülemek için kullanabileceğiniz bir widget oluşturur.
Kullanıcınız ikinci seviye sayfasındaysa, yukarıdaki sayfaya ve tüm türev sayfalarına bir bağlantı görürler. Üst seviye sayfasındaysa, aynı sayfaya ve tüm türevlerine bir bağlantı göreceklerdir.
Not: Bu gönderi için GitHub’a bir kod yükledim, böylece takip ederseniz kontrol edebilirsiniz. İhtiyacınız olan şey kod tabanlı bir gönderidir, bu nedenle takip etmek istiyorsanız birkaç şeye ihtiyacınız var:
WordPress kurulumunun geliştirilmesi veya testi.
Bir kod editörü.
Not: Bu, eklentilerin nasıl yazılacağını anlıyorsanız da yardımcı olur. Bu sizin için yeniyse, yeni başlayanlar için WordPress’in gelişimi hakkında Akademi kursumuza bakın. Boş eklentinizi yaparak eklentiyi başlatın. WP-Content/Eklentiler dizininizde, eklentiniz için bir klasör oluşturun ve ardından boş bir PHP dosyası oluşturun. Eklenti işlevini hatırlaması ve açıklaması kolay bir ad verin. Not: Şimdilik eklentimin yalnızca bir dosyası olmasına rağmen, daha sonra stil sayfası gibi ek dosyalar eklemek istiyorsanız, klasörün içine koymak iyidir, böylece, kolayca yap. Yeni dosyanızı açın ve bunu ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Şimdi eklentinizi Yönetici Eklentisi ekranı üzerinden etkinleştirin. İlk üst sayfada olup olmadığımızı kontrol edin, üst seviye sayfasında olup olmadığımızı kontrol eden bir işlev yazacağız ve eğer öyleyse, sayfa kimliğini daha sonra kullanabileceğimiz bir değişken olarak saklayın. İkinci seviye sayfasındaysak, üzerindeki üst düzey sayfaları tanımlar ve bu sayfanın kimliğini kaydeder.
Eklentinize şunu ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Ne çalıştığını görmek için kodu izleyelim:
İlk olarak, işlevde kullanacağımız global $ POST’u çağırıyor.
Bu, sevkiyatın şu anda ebeveynleri olup olmadığını kontrol etmek için ($ post-> post_parent) kullanır.
Eğer öyleyse, geçerli gönderi için Ancstor listesini almak ve $ Ebeveynler adlı bir değişkende depolamak için Array_Reverse (get_post_anncestrors ($ post-> id) kullanır.
Bu, $ ebeveynleri [0] kullanarak üst düzey atalar kimliğini döndürür. Mevcut gönderide bir ata yoksa, kimliği mevcut gönderiden döndürür.
Bu, bu işlevin iki şeyden birini geri yüklediği anlamına gelir: en üst düzeyde ise mevcut gönderi kimliği veya ataları varsa üst atalar kimliği.
Daha sonra bu kimliği bir sonraki işlevde kullanacağız. Geçerli bölüme sayfaları ekleyin Bir sonraki adım, ilgili bir sayfa listesi oluşturmak için bu kimliği kullanmaktır. Şimdi eklenti dosyanızda boş bir işlev ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Bu işleve iki şey eklememiz gerekiyor. Önce her şeyi ayarlayacağız, wpmu_check_for_top_page () işlevini arayacağız ve get_pages () ve wp_list_pages () () işlevinin bağımsız değişkenini tanımlayacağız. Ardından sayfayı bir bağlantı ile görüntülemek için kodu ekleyeceğiz. Önce her şeyi düzenleyelim. Boş işlevinizde şunu ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
İlk işlevimizin sonuçlarını çağırdık ve $ anestor adı verilen bir değişken olarak tuttuk. Sonra bunu get_pages () için argümanlardan biri olarak kullanıyoruz. Argüman ayrıca boş olan listenin ve başlığın derinliğini belirler. Şimdi sayfaları bir bağlantı ile kaldıralım. Hala işlevinizde, şunu ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Bunun üzerinde çalışalım:
Önce argümanımızı kullanarak get_pages () çalıştırıyoruz ve bunu $ list_pages adlı yeni bir değişken olarak tanımlıyoruz.
Sonra değişkenlerimizin doldurulup doldurulmadığını, yani get_pages () herhangi bir şey döndürüp döndürmediğini kontrol ediyoruz.
Eğer öyleyse, UL elementini açıyoruz. Listedeki ilk kez ataların kendisidir. Bu, wp_list_pages () işlevi tarafından çağrılmayacaktır, çünkü iade edilecek her şey ataların çocuklarıdır, bu yüzden manuel olarak ekleriz. Listenize en üst düzey sayfaları eklemek istemiyorsanız, bu satırı göz ardı edebilirsiniz.
Ardından, bağlantılı sayfaların bir listesini görüntüleyecek olan argümanımızla wp_list_pages () çalıştırıyoruz.
Yani bu bizim kod setimiz. İsterseniz, çalıştırmak için tema şablonu dosyanızda bir yere wpmu_list_subpages () () işlevini ekleyebilirsiniz (örneğin kenar çubuğunuzda). Ama bir widget’a dönüştürürsek bize daha fazla esneklik kazandırır, bu yüzden bunu yapalım.
Sayfa listemizi görüntülemek için bir widget oluşturma Kodun bir widget oluşturmak için nasıl çalıştığı hakkında çok fazla ayrıntı tartışmayacağım, ancak adım adım çalışacağım. Daha fazla bilgi edinmek istiyorsanız, kendi özel WordPress widget’ınızı oluşturma ile ilgili yayınlarımızı yapabilirsiniz. İlk adım, wp_widget sınıfını kullanarak widget’ımızın işlevini ayarlamaktır. Bunu eklentinize ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Bu işlev dört şey içermelidir: Widget’lar oluşturmak için yapıcı işlevi, yönetici ekran widget’ında (ve ayarlama) formları görüntülemek için işlevler, formda herhangi bir girişi depolamak için güncelleme işlevi ve son olarak widget içeriğini görüntüleme işlevi widget içeriğini görüntüleme işlevi alan.

İşlevinizde, bir yapıcı işlevi ekleyerek başlayın:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Şimdi widget’ınızı yönetici ekran widget ve ayar eklemek için işlevler ekleyin: D3F7A2BBA519F51F98777E24803D9E9E’nin özünü içerir
Bu, formu yönetici ekranınızda görüntüleyecek HTML yapar. Bir sonraki adım bir güncelleme işlevi eklemektir. Bu olmadan, depolanacak yönetici ekranına eklediğiniz hiçbir şey yoktur:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Ve son olarak, sitedeki widget içeriğini görüntülemek için kodu ekleyin:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Son işlevin ne olduğunu görelim:
Önce ana sayfa olmayan bir sayfada olduğumuzu kontrol eder. Bunun nedeni, ana sayfada bir subhhammed olmamasıdır, bu nedenle bölüm menüsünü görüntülemesine izin verilmez. Sitenizde bu farklıysa, biti silebilirsiniz.
Daha sonra, formumuzun işlevi ile tanımlandığı şekilde widget’tan önce herhangi bir bağımsız değişkeni tekrarladı ve widget’ın başlığını (yönetici ekranında düzenleyebileceğiniz) belirledi.
Sonra kenara bir kenarı oluşturdu, başlığı görüntüledi ve wpmu_list_subpages () işlevini gerçekleştirdi.
Sonunda yan öğeleri kapattı ve widget’tan sonra herhangi bir tartışmayı ortadan kaldırdı.
Bu düzenlenmiş bir widget. Ancak bu, kaydolana kadar çalışmaz. Bu, eklentinize eklemeniz gereken son işlevdir:
D3f7a2bba519f51f9877e24803d9de9e’nin özünü içerir
Sitenizdeki widget’ınızı kullanma artık bölüm menüsünü otomatik olarak görüntüleyecek bir widget içeren bir eklenti var. Burada yönetici widget ekranında:
Ve bu, sitenin ön ucundaki sonuçtur:
Gerçek veriler
Şu andan itibaren sitenizin yapısına yeni bir sayfa eklediğinizde, ilgili bölüm için bölüm menüsüne otomatik olarak eklenecektir.Tamamlanmış iş!Otomatik bölüm menüsü, siteniz hiyerarşik sayfa yapısına dayanıyorsa, kullanıcılarınızın sitenizde gezinmesine yardımcı olur, bölüm menüsünü eklemek, kullanıcılarınızın baktıkları sayfa ile ilgili içerik bulmasına ve sitenizi gezdirmesine yardımcı olacaktır.Yan tarafta, bu, sitenizin ana navigasyonuna yararlı bir ek olarak işlev görür.Bu eklentiyi, her bir sayfanın altındaki geçerli bölümdeki sayfaların bir listesini yapmak için ayarlayabilirsiniz, örneğin, belki de üstün resimler ekleyebilirsiniz.Sayfaya üstün görüntü desteği eklenmesini ve yayınlanmasını gerektirecektir – neden denemiyorsunuz? Umarım bu öğreticiyi yararlı bulursunuz!Kod hakkında sorularınız varsa, lütfen aşağıdaki yorumları sorun.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir