WordPress Eklentisi Bölüm 3: Özel bir içerik türü hazırlama
Dizimizin ikinci bölümünde, gelecekteki kodumuz etrafında makul bir iskele oluşturmak için WordPress eklentisi Bolarplate kullanarak yapılandırılmış bir başlangıç başlattık. Bu yaklaşımı benimseyerek, ücretsiz olarak pişirilmiş çok sayıda en iyi eklenti uygulamasıyla başlayabiliriz. Bu kez, gelecekteki kullanıcılarımız tarafından özel bir yazı türü kullanarak yapılan bazı içerikler vermeyi göreceğiz. Bu bize WordPress Bolarplate eklentisinin kendisini kullanarak birkaç küçük adım atma fırsatı verecek ve oynamak için sisteme bazı test içerikleri koyacak.
Bununla birlikte, kıyafetlerin kollarını açmadan ve özel bir içerik yapmaya başlamadan önce, terminoloji hakkında bazı karışıklık olasılıklarını bitirelim. Önceki WordPress deneyiminiz dışında özel yazı türü üzerindeki bazı arka planlar, neredeyse kesinlikle bir yere yayınlama kavramını bulursunuz. Büyük olasılıkla, posta ve sayfa arasındaki temel farkı hızlı bir şekilde anl ve sonra hayatınıza devam edersiniz. Bununla birlikte, daha fazla öğrenir öğrenmez arka planda gizlenen bazı potansiyel karışıklıklar vardır. Justin Tadlock’un bu konu hakkındaki olağanüstü tanıtım makalesinde gösterdiği gibi, 2010 yılında özel yazı türü tanıtıldığından beri “Post” terimi WordPress’teki birkaç potansiyel temel kaplıyor – sadece blog yayınları hakkında burada sayfa hakkında konuşmuyoruz.
WordPress’e göndermek aslında farklı içerik türlerine atıfta bulunmak için kullanılan genel bir terimdir. Bu yazılım, doğrudan kapıdan kullanılmaya hazır beş farklı yazı türü ile donatılmıştır: Post (bu bir blog yazısı olarak düşünebileceğiniz şey budur)
sayfa
ek
Revizyon
Menü
Tüm bunların gerçek içeriği, ilk kez gördüğünüzde genellikle orada olan birçok veriyi açıklayan veritabanı post tablosunda saklanır.
Özel yazı türleri, WooCommerce gibi popüler eklentilerin çekirdeğidir. Ayrıca kendi özel sevkiyat türümüzü yapma seçeneğimiz de var. Bu bize bir geliştirici olarak ana içeriğimizi izole etmek ve potansiyel kullanıcılarımıza arkaya içerik girmek için basit ve sezgisel bir yol sunmak için iyi bir yol sunar. Bu, çok sayıda popüler eklentinin ve platformun çekirdeğinin çekirdeği olan bir yaklaşımdır.
Burada temel çalışmayı tamamlamak için Register_post_Type () işlevini kullanacağız. (Kapsamlı argüman listesinin hayranları belirli bağlantılara muamele edilmeye hazırdır.)
Init kancaları başlamak için süreç süreci gibi görünür.
Adlandırma hakkında doğru düşüncelere sahip olmalıyız.
Tüm bunları kullandığımız WordPress eklentisi Bolarplate ayarlarına girmenin yollarını bulmalıyız. Önce son öğeyle başlayalım. Önceki bölümümüzden eklenti klasörünün yapısına geri dönerek, eklentimiz de dahil olmak üzere yerel klasörlerin birçok eylemin gerçekleştiği yer olduğunu hatırlayabilirsiniz. Daha spesifik olarak, genellikle class-plugin-name.php adını verdiğimiz dosya, ön ve arkada çeşitli şeyler yapmak için yararlı olan birkaç giriş noktası sunan klasörler içerir.
Özel durumumuzda, eklentinin adı My-Rdm-Quotes’tur, bu da bize /lugins/my-rdm-quotes/includes/class-my-rdm-quotes.php adresinden tam bir yerel yol veren. Dosyayı açarsak, orada oturan Define-Admin-Hooks () yöntemini kullanmayı beklerken göreceğiz:
Aslında özel içerik türümüzü kaydediyoruz, şimdi dalış yapmamız gerektiğine dair kaba bir resmimiz var, ancak ilk kez bir şeyler denerken her zaman başkalarının omuzlarında durmaya layık. Chris Wilcoxson’un son zamanlarda WordPress eklentisinin kullanımı hakkındaki sunumu sadece eğlenceli ve bilgilendirici bir görüşmeler değil, aynı zamanda GitHub’da keşfedilecek birkaç pratik ve belgelenmiş çalışma kodunun eşlik ettiği.
Ana sınıf dosyasına göründüğünde, Register_post_Type () () Kayıt işlevinin, özel işlev yoluyla olmasına rağmen beklediğimiz sürece dahil edildiğini görebiliriz: Bu sırada, bizi register_post_type () ‘nin tüm argüman avantajlarında uygulandığı yönetici klasörüne ve ana yönetici sınıfına geri getirin:
Yerel dosyamızda benzer bir yaklaşım benimseyerek, di /cludes/class-my-rdm-quotes.php: kişisel işlev defore_admin_hooks () {$ plugin_admin = yeni my_rdm_quotes_admin ($ this-> get_plugin_name (), $ this-> başlayacağız. Get_version ()); $ this-> loader-> add_action (‘admin_enqueue_scripts’, $ plugin_admin, ‘enqueue_styles’); $ this-> loader-> add_action (‘admin_enqueue_scripts’, $ plugin_admin, ‘enqueue_scripts’);
$ this-> loader-> add_action (‘init’, $ plugin_admin, ‘new_cpt_rdm_quote’);
} Bu, WordPress’e yönetici klasörünün ilgili bölümünde new_cpt_rdm_quote () adlı özel bir işlev bulmasını söyler. Daha sonra bu işlevi /admin/class-rdm-quotes-admin.php içine ekleyeceğiz. Aşağıdaki durumumuzda, Chris Wilcoxson’un orijinal kodunun biraz soyulmuş bir versiyonunu kullandık:
/**
* Yeni bir özel yazı tipi yapın
*
* @sejak 1.0.0
* @Access Public
* @Register_post_type ()
*/
Statik genel işlevi new_cpt_rdm_quote () {
$ cap_type = ‘post’;
$ plural = ‘rastgele alıntı’;
$ single = ‘rastgele alıntı’;
$ cpt_name = ‘rdm-quote’;
$ opts [‘can_export’] = true;
$ opts [‘Capity_Type’] = $ cap_type;
$ opts [‘açıklama’] = ”;
$ opts [‘exclude_from_search’] = yanlış;
$ opts [‘Has_archive’] = yanlış;
$ opts [‘hiyerarşik’] = yanlış;
$ opts [‘map_meta_cap’] = true;
$ opts [‘Meno_icon’] = ‘Gösterge Tablosu Girişimci’;
$ opts [‘menü_position’] = 25;
$ opts [‘public’] = true;
$ opts [‘genel olarak_queable’] = true;
$ opts [‘query_var’] = true;
$ opts [‘register_meta_box_cb’] = ”; $ opts [‘rewrite’] = false;
$ opts [‘show_in_admin_bar’] = true;
$ opts [‘show_in_menu’] = true;
$ opts [‘show_in_nav_menu’] = true;
$ opts [‘labels’] [‘add_new’] = esc_html __ (“Ekle {$ single} yeni”, ‘bilgelik’);
$ opts [‘labels’] [‘add_new_item’] = esc_html __ (“ekle {$ single} yeni”, ‘bilgelik’);
$ opts [‘etiketler’] [‘all_items’] = esc_html __ ($ çoğul, ‘bilgelik’);
$ opts [‘labels’] [‘edit_item’] = esc_html __ (“edit {$ single}”, ‘bilgelik’);
$ opts [‘labels’] [‘menü_name’] = esc_html __ ($ çoğul, ‘bilgelik’);
$ opts [‘labels’] [‘name’] = ESC_html __ ($ çoğul, ‘bilgelik’);
$ opts [‘labels’] [‘name_admin_bar’] = esc_html __ ($ single, ‘bilgelik’);
$ opts [‘labels’] [‘new_item’] = esc_html __ (“yeni {$ single}”, ‘bilgelik’);
$ opts [‘labels’] [‘not_found’] = esc_html __ (“hayır {$ plural} bulundu”, ‘bilgelik’);
$ opts [‘labels’] [‘NOT_FOUND_IN_TRASH’] = ESC_HTML __ (“Çöpte bulunmayan {$ çoğul}”, ‘bilgelik’);
$ opts [‘labels’] [‘parent_item_colon’] = esc_html __ (“parent {$ plural}:”, ‘bilgelik’);
$ opts [‘labels’] [‘search_items’] = esc_html __ (“{$ plural}”, ‘bilgelik’);
$ opts [‘labels’] [‘singular_name’] = esc_html __ ($ single, ‘bilgelik’);
$ opts [‘labels’] [‘view_item’] = esc_html __ (“bkz. {$ single}”, ‘bilgelik’);
register_post_type (strToLower ($ cpt_name), $ opts);} // job_cpt_baru () işlevin altındaki gerçekten kayıt_post_type () () adını verdiğini göreceksiniz ve yol boyunca belirlenen çeşitli argüman ve etiketlere devam edin . Her şey yolunda, şimdi arkaya girip içeriğimiz için yeni bir ev görebilmeliyiz:
Yeni rastgele alıntı ekle, alıntıya girmek için tanıdık görünen bir arayüze sahip olmalıyız:
Veritabanına kısa bir yolculuk ve teklifimizin doğru türden özel yazı ile saklandığını göreceğiz:
Şu anda yapabileceğimiz her türlü küçük ince ayar ve değişiklik var, ancak bu sadece bu diziyi tamamlamak için. Çok sayıda kod uygulanmadı, ancak eklentimizin genel gelişiminin başka bir önemli aşamasını tamamladık. Ve en önemlisi, WordPress Bolarplate eklentisi, bize yönlendirilecek pratik bir kod ve içinde çalışacak sağlam bir yapı örneği vererek değerini bir kez daha kanıtlıyor.
Sonuç Dizimizin arkasına köşeye döndüğümüzde, hoş yolumuz boyunca istikrarlı ve yapılandırılmış bir ilerleme kaydetmeye devam ediyoruz. Bize rehberlik etmek için sağlam iskele ile şimdiye kadar bir dizi önemli kutuyu işaretledik ve gelecekte taksitlere hazırız. Bu sefer aldığımız ana noktaları özetleyelim:
WordPress’te özel bir yazı türü kavramını tanıtıyoruz.