WordPress Yönetici Tablosunu WP_LIST_TABLE ile eklentiye ekleyin
WordPress Yönetim Tablosu veya Liste Tablosu, Yönetici alanında yayınların, sayfaların, kullanıcıların vb. Bir listesini oluşturmak için yaygın olarak kullanılır. Liste tablosunu kendi verilerinizi eklentinize eklemek istiyorsanız, WordPress bunu WP_LIST_TABLE sınıfı ile yapmanın iyi bir yolunu sunar. Bu makalede, yönetici tabloları veya WordPress gibi liste tablolarını yönetici eklentinize eklemek için WordPress API’sını nasıl kullanacağınızı göstereceğim. WordPress listesi tablosu, gösterge tablosundaki hemen hemen tüm yerlerde kullanılır. Bunları birçok popüler eklentide yanı sıra yayınları, sayfaları, kullanıcıları, yorumları vb. Yıllar boyunca, WordPress’te tablo bilgilerini görüntülemek için standart fiili olmuştur.
Not: Bu makale orta düzey WordPress geliştiricileri için tasarlanmıştır. Devam etmeden önce WordPress, PHP ve WordPress eklentisi API hakkında bilgiye ihtiyacınız olacak. Emin değilseniz veya yenilemek istemiyorsanız, aşağıdakileri okumanızı öneririm:
Yeni başlayanlar için WordPress’in geliştirilmesi: Başlangıç
Yeni Başlayanlar İçin WordPress Geliştirme: Widget’lar ve Menüler
Yeni Başlayanlar İçin WordPress Geliştirme: Bir Eklenti Oluşturma
Daha fazla WordPress’in geliştirilmesi: Nesne Odaklı Programlamaya Giriş
Bu makale için, nesne yönelimli yapı kullanan eklentilerin yardımıyla özel bir yönetici tablosu oluşturdum. Eklentiler makaleyi takip etmek için buradan indirilebilir. Ancak tartışmadan önce, yönetici tablosunun gerçekte ne yapıldığını anlayalım.
Makalenin geri kalanı için yönetici tabloları ve liste tabloları terimini de kullanacağım. WordPress Yönetici Tablosu – Gösterge tablosundaki yayınlar ve kullanıcılar gibi sayfalara erişirken arka planınız yönetici tablosu ile etkileşime girmiştir. WordPress yönetim tablosu, /wp-admin/includes/class-wp-list-table.php adresinde bulunan WP_LIST_TABLE sınıfı kullanılarak uygulanır. Bu, bilgileri tablo modunda görüntülemek ve verileri sezgisel olarak değiştirmek için gereken bir çerçeve sağlar. Aşağıda, Sıradan WordPress Yönetici Tablosunun kastedildiğine genel bir bakış: WordPress Yönetici Tablosu
Ekran seçenekleri doğrudan WP_LIST_TABLE’nin bir parçası olmasa da, onunla çok yakın çalışırlar. Sayfada görüntülenen bilgileri sınırlandırarak sütunun görünürlüğü üzerinde kontrol ve sayfalandırma sağlarlar. WordPress API’sı, WordPress API’sının, birisinin onu kullanması gerektiği anlamına gelmeyen orijinal tabloların bir listesini oluşturmanın bir yolunu sunduğu için ne zaman kullanılır. Bence, WordPress tarafından sağlanan yönetici tablosunu kullanmaya karar vermenin en büyük faktörü kullanıcının deneyimidir. WP_LIST_TABLE sınıfı ile WordPress sizin için UI tablo düzenlemesini işler. Tutarlık, yönetici tabloları (WordPress boyunca) ile çalışır ve orijinal görünüm ve nüanslar, kullanıcıların tablo verilerinizle sorunsuz bir şekilde etkileşime girmelerine kesinlikle yardımcı olacak öğelerdir.
WP_LIST_TABLE Sınıfının Anatomisi WordPress sürüm 3.1.0’da başlatıldığından beri, WP_LIST_TABLE sınıfı geliştiriciler arasında giderek daha popüler. WPRPress Codex sınıfı WP_LIST_TABLE için Yöntemler, Özellik ve Kullanım hakkında eksiksiz bilgi sağlar. Aşağıdaki infografik, sınıf referansından yönetici tablosunun kurucu bloğunu açıklamaktadır.
Daha karmaşık bir yönetici tablosu, “Yayınlanmış Mesajlar” ve “Taslak” ı görüntülemek için kullanılan ek gerilme filtreleri ve tablonun üzerindeki eylem bağlantıları da görüntülenecektir. Şimdi admin ve wp_list_table sınıf tablosu hakkında adil bir anlayışımız var, bu bilgiyi özel bir eklenti yardımıyla kullanalım. Tablo Eklentisi Özel Listesi Kullanıcı Meta İşlemleri İçin Özel Listesi Tablo listesinin uygulanmasının ayrıntılarını girmeden önce, bu makale için hazırladığım özel eklentiye kısaca dokunmak istiyorum. Takip etmek için buradan indirebilirsiniz. Uygun editörde açmanızı ve yalnızca yerel geliştirme WordPress kurulumuna yüklemenizi öneririm. Bu eklenti, orijinal WordPress Bolarplate eklenti projesinin çatalı olan kendi eklenti şablonuma dayanmaktadır. Bu, orijinal projeye birçok açıdan benzer, ancak aynı zamanda ADI Alan ve otomatik yükleme için de desteğe sahiptir. Bu şekilde, her sınıf veya işlev için benzersiz bir önek yapmam gerekmiyor ve birçok kişi dahil ve ifadelerle bitmiyor. Ancak, eklentim için gereken minimum PHP sürümü 5.6.0’dır.
Çoğunlukla aşağıdaki eklenti dizinindeki dosyalarla çalışacağız:
İnc/core/* – eklenti çekirdeğinin işlevselliği için
Inc/Admin/* – Yönetici alanındaki tabloların bir listesini görüntülemek için
Inc./Library/* – Pluggasan için Kütüphane, eklentileri kendi düzeninizin kodlamasına ve tercihlerine göre düzenlemekte tereddüt eder. Kazan plakasının başlangıç noktasını kullanmayı tercih ederim çünkü WordPress eklentisi el kitabında listelenen en iyi uygulamalar arasındadır. Özel eklentinin amacı, kullanıcının meta verilerindeki işlemleri gerçekleştirmek için ekran seçenekleri, pagellemeler ve çizgi eylem bağlantıları üzerinde kontrol ile yöneticide kayıtlı tüm WordPress kullanıcılarını görüntüler. Her satır eylemi bu işlemi gerçekleştirmek için eklenti sayfasına yol açar.
Bu kullanım durumu kesinlikle ideal değildir, çünkü user_row_actions kullanarak varsayılan WordPress kullanıcı sayfalarına işlevsellik ekleyebilirim; Ancak, bu başlangıçtan bir tablo listesi uygulamaya hizmet eder. Haydi başlayalım. WP_LIST_TABLE Sınıfını devralma bir yönetici tablosu oluşturmak için, eklentinizde WordPress tarafından sağlanan WP_LIST_TABLE’nin temel sınıfını genişleten bir alt sınıf tanımlamanız gerekir. Bu nedenle, yapmanız gereken ilk şeyler arasında, class-wp-list-gittle.php dosyasını/wp-admin/coir/eklentinize kopyalayın. Bunu tavsiye ederim çünkü çekirdek sınıf bir kişi olarak işaretlenmiştir, bu nedenle WordPress tarafından sınıf veya yöntemdeki her potansiyel değişiklik eklentinize zarar vermez.
Eklentimde, dosyaları Inc/kütüphanelerine kopyaladım ve ad alanının talimatlarını ekledim. Ad alanları kullanmıyorsanız, her şeyi başlatmalısınız.
WP listesi-tablo sınıf dosyalarını kopyala
Daha sonra kendi PHP alt sınıfı user_list_table Inc/Admin/class-kullanıcı-list-gitty.php’de, eklenti klasörünü inc/kütüphaneler altında genişleten temel wp_list_table sınıfını genişleten tanımladım.
Nuancedesignstudio/1A20f5773972973e11cf8d1cf7d02786cfikan yüklenmesi Yukarıdaki iki yöntemle Barebon’un uygulanmasıdır. Açıkçası, çocuk sınıfında yapılması gereken birçok şey var, ancak önce boş liste tablosunu oluşturarak başlamak istiyorum. Bir tablo listesi oluşturma Bu aşamada, çocuk sınıfına yapıcılar ve diğer yöntemler eklemeyi seçebilirsiniz; Ancak, önce boş bir liste tablosu oluşturmayı tercih ederim. Bu yukarıdan aşağıya yaklaşımın oldukça etkili olduğunu gördüm çünkü her aşamada tablo listesinin çıktısını görebiliyordum, bu da taranabilecek hatalardan kurtulmayı kolaylaştırıyordum. Bir tablo listesi oluşturmak genellikle üç adım gerektirir:
Çocukların Örnek Sınıf Tablo Listesi Oluşturun
Masayı oluşturmadan önce veri hazırlamasını işleyen prepae_items () arayın
Call Display () – Gerçek tabloyu oluşturan
Bu yöntemlerin her ikisi de tekerlekleri hareket ettirir. Öyleyse eklentide bu yöntemin nereye ve nasıl çağrıldığını görelim.
Eklenti Eklentisi Menü sayfasını ekle Kullanıcı altında özel bir kullanıcı listesi tablosu görüntülenir.
Tablo listesi için menü sayfası
Kullanıcı alt menüsü sayfasını nasıl eklediğimi görmek için, Inc/Core/Class Init.php’deki define_admin_hooks () yöntemine ve Inc/admin/class-admin.php eklentisindeki add_plugin_admin_menu () yöntemine bakın.
Nüansedesignstudio GIST/449E2ABBDBC804EF22AC5A09A7C2A4B3’ün yüklenmesi
Add_user_page () içindeki add_user_page () için load_user_list_table () geri aradığını not edin. Burası prepare_items () ve ekran () yöntemlerinin çağrıldığı yerdir. Ancak, sayfa kancası için bir geri çağrı olan load_user_list_table_screen_options () ‘da bir alt sınıf örneği yaptım. Eklenti sayfası yüklenmeden hemen önce çalıştırıldı ve burada çocuğumun sınıf örneğini yapmak WordPress’in ekran seçenek paneline otomatik olarak bir tablo listesi sütunu eklemesine izin verecektir. Tablo listesindeki sayfayı kontrol etmek için ekran seçenekleri de buraya eklenmiştir. State nuancedesignstudio/1975a5725cb4978606f657dffba58ccf Ayrıca, Mass Action gibi özelliklerden yararlanmak istiyorsanız, ekran () ‘nın HTML formuna sarılması gerektiğini unutmayın. HTML’yi karıştırmamayı tercih ederim, bu yüzden bu yöntemin nihayet çağrıldığı kısmi-wp-list-tablo-demo-display.php yüklemek için incors_once directini kullanıyorum.
NüansedSignstudio GIST/FF386ED565AEE2039719F3353DD0E152 yüklenmesi
Barebone Liste Ayarları Doğrulama Kullanıcı menüsünün altındaki eklenti sayfasını açtığımda WordPress, tablo listesinin istendiğini fark etti ve verilen veri olmadığı için “öğe bulunamadı” mesajıyla bir tane yaptı.
Barebone Kullanıcı Listesi Tablosu
WordPress’in HTML form öğesini nasıl doldurduğunu ve inceleme ekranındaki liste tablosuna nasıl doldurduğunu unutmayın. Ayrıca, WordPress kullanıcı arayüz standartlarına uyacak şekilde kuvveti kontrol etmek için sınıf öznitelikleri ekler. Doğru oluşturulan bir tablo ile, kullanıcı listesi tablosunu tamamlamak için diğer yöntemlere bakalım.
Not: Bu aşamada WordPress, alt sınıfların eksik uygulanması nedeniyle hata ayıklama günlüğünde birçok uyarı üretecektir. WordPress günlüğünü denetlemek için geliştiriciler gibi eklentileri kullanın. WP_LIST_TABLE Sınıf Yöntemini Değiştirme Yukarıdan aşağıya yaklaşımıma devam etti, devam ettim ve tablo sütununu ekledim. Bunu yapmak için alt sınıftaki get_columns () değiştirmeniz gerekir. Wp_list_table :: get_columns () Bu yöntem, anahtar değeri çifti içeren bir dizi bekler, burada anahtar kolon sümüğüdür ve değer tablo listenizdeki metin başlığı sütunudur.
Mass Action ile kullanmak için bir onay kutusu yapan özel bir sütun olan CB sütununa dikkat edin. Ayrıca no_items () yöntemi no_items () ile “öğe bulunamadı” mesajını da değiştirdim. Sütun ayrıntılarını ekledikten sonra bu benim tablom.
Sütun get_columns () değiştirdikten sonra alınır İyi şekillendirilmiş bir tablo ile, veritabanından verileri tablo listesine doldurmak için prepare_items () için gerekli kodu ekliyorum. Wp_list_table :: prepare_items () Tablo verilerini işlemek için kendi prepare_item () uygulamanızı sağlamalısınız. Bu yöntem, tabloyu oluşturmadan önce açıkça çağrılmalıdır. Dolayısıyla, geri alma, sıralama, sayfalama, filtreleme vb. Gibi verilerle ilgili tüm işlemler. Tablo görüntülenmeden önce burada ele alınmalıdır. Tablo verilerini yüklemek için Fetch_Table_Data () ‘daki WordPress veritabanından soruyorum ve sonuçları üst sınıftan öğeler değişkenine ayarlamadan önce bir dizide kaydediyorum.
NüansedSignstudio GIST/BAA43EA0882C5AEB6D5173053470E927 yüklenmesi
Ancak, bu tablodaki verileri görüntülemek için yeterli olmayacaktır. Ekranı tamamlamak için _*() () () () sütunu kullanarak _*() sütununun özel uygulamasını da sağlamanız gerekir. WP_LIST_TABLE :: COLUMN_DEFAULT () Yukarıdaki get_columns () yönteminde, her sütun için sütun salyangozları sağlıyorum. Bu salyangoz, ayrı sütun yöntemini tanımlamak için kullanılabilir. Her sütun için özel bir sütun yöntemi sağlamak iyi bir uygulama olmasına rağmen, column_default () yöntemini de kullanabilirsiniz. Sınıf WP_LIST_TABLE VARSAYICI TO COLUMN_DEFAULT () Özel bir sütun yöntemi bulamadığında.
Bu bir sütun yapar ve verileri tablo listemdeki görebiliyorum.
Sütun_default () yöntemini ekledikten sonra tablo verilerini kaydedin
NüansedSignstudio Yükleme/112D1AFEC60FB6792753700750750152
Bu, tablo listemdeki tüm satırlar için bir onay kutusu veriyor. Notları net bir şekilde tanımlayabilmeniz için onay kutusu değeri user_login veya id gibi benzersiz olmalıdır. Daha sonra tablo listesinde sıralama ve sayfalandırma için destek ekledim. WP_LIST_TABLE :: get_sortable_columns () get_sortable_columns () ile sıralayın, belirtilen sütunun tablo listesinde sıralanabilmesi gerekir. Ancak, verileri tamamen sıralamak için kodun prepare_items () adresinde yazılması gerekir. Örneğimde, yukarıda gösterildiği gibi fetch_table_data () hakkında veri alırken SQL’de diziyi yapıyorum.
Nücecedesignstudio/4a72ddc7d9b4b4b90f43b4e0dce0dce53SAAT sıralaması sütunlarda yapılır, referanslar $ _get [‘sipariş’] ve $ _get [‘sipariş’] süper çiftçiler aracılığıyla kullanılabilir.
Tablo listesinde sıralanabilecek sütunu tanımlar
WP_LIST_TABLE :: set_pagination_args () ile Pagination ile işleme Eklediğim ekran seçeneğinde daha önce tablodaki verileri sınırlamak için kontrolleri vardı. Bunu bir tablo ile bağlamak için, prepare_items () ‘deki sayfalandırma bağımsız değişkenini ayarlamak için get_items_per_page () ve set_pagination_args () kullanıyorum. NüansedSignstudio Yükleme/2F8B8DEE424F82437D8E0CE88C6386D9
Bireysel tablo sayfaları için veri alt kümesini oluşturmak için, sonuçlarımın dizisinde array_slice () kullanıyorum.
Tablo listesine sayfa ekleme
Ardından, liste tabloıma arama kutusunu, kütle eylemini ve satır eylemini ekledim. Wp_list_table :: search_box () Bir arama kutusu eklemek için, eklenti sayfasına gönderildiğinden emin olmak için gizli alanlarla birlikte bir biçimde sarmanız gerekir. Bunu, ekrandan hemen önce () Kısmi-WP-List-Table-Demo-display.php’ye ekledim. Arama için verilerin işlenmesi prepae_items () adresinde gerçekleştirilir.
Nüansedesignstudio GIST/095BD1C1DD8C0D64F908806D85A3F748
Tablo listesine bir arama kutusu ekleyin Arama yapıldığında, arama anahtarı SuperGlobal $ _Request [‘s’] aracılığıyla kullanılabilir. Örneğimde, Array_Filter ve Search tuşunu kullanarak sonuçların sonuçlarını değiştiriyorum.
NüansedSignstudio Yükleme/6B77DC8DDF5D5567C9E0E65E3FD3E610
WP_LIST_TABLE :: get_bulk_actions () kitle eylemi get_bulk_actions () için eklenir ve ilişkisel dizilerdeki eylemleri belirlemeniz gerekir. Gerçek eylemlerin işlenmesi Hazırlık_items () ‘de alınmalıdır. Durum nuancedesignstudio gist/be373a33f5b3d6078df0e8fb058b9276
Kitle eylemi gönderirken, iki eylem ve eylem2 değişkeni belirlenecektir. Değer, uyguladığınız yığın eylemine, tablonun üstünde veya altında dökme eylemine bağlı olacaktır. Liste tablosunda toplu eylem ve satır eylemi
Eklentimde, prepage_items () ‘deki handle_table_action () yönteminin takma adı kullanıcı eyleminin işlenmesini işler.
Nüansedesignstudio GIST yüklenmesi/9Becb8b971b49d3274650622572507c Nonce doğrulandıktan sonra, kütle eylemini işlemek için inc/admin/views/aşağıdaki kısmi-wp-list-tablo-demo-bud-download.php yükledim. Sonunda çizgi eylem bağlantısını ekledim. Çizgi Eylem Bağlantıları Ekleme Tablo listesine bir satır eylem bağlantısı eklemek için, tablo sütunu için eylem bağlantısını görüntülemesi gereken sütunun özel bir uygulamasını sunmanız gerekir. Eklentimde, iki eylem bağlantısı ekledim – Meta ekleyin ve USER_LOGIN sütununa meta görüntüleyin.
Nüansedesignstudio GIST/D92C7B037B8A9496ED0B86BEB1392E90 yüklenmesi
Örneğimde, satır eylemi gerçekleştirildiğinde, kullanıcı kimliği, özel nonce ve eylemlerin hepsi URL parametresinin bir parçası olarak sağlanır. /users.php?page=nds-wp–list-master-demo&Action=view_usemeta&user_id=11&_wpnonce=9c38dd6c2c, prepare_items () ‘deki kullanıcı eylemleriyle başa çıkmak için kullanılır. Kütle eylemi gibi handle_table_action () gibi aynı yöntemle satır eylemlerini ele alıyorum.
Nüansedesignstudio GIST/5A488A8B057D63F2274A8F8AEF682E2E yüklenmesi
Current_ace () ile yapılan eylemleri tanımlayabilir ve kullanıcıyı buna göre yönlendirebilirsiniz.Meta görüntüleme taleplerini nasıl işlediğimi görmek için Inc/Admin/Views altındaki kısmi-wp-list-tablo-demo-view-usmeta.php’ye bakın.İşte burada!Aşağıda, tamamlanmış tabloların bir listesi verilmiştir.
WP_LIST_TABLE sınıfı ile oluşturulan özel bir kullanıcı listesi tablosu Umarım bu makaleyi yararlı bulursunuz.Popüler eklentilerde kullanılan wp_list_table sınıflarının bazı örnekleri:
Woocommerce
Etkinlik Takvimi
Kolay dijital indirmeler
Bir tablo listesi kullandınız mı?Aşağıdaki yorumlarda bize deneyiminizi anlatın.
Etiket:
WP yöneticisi