WordPress eklentisini oluşturma Bölüm 4: Kısa kod üzerinden içeriği görüntüleyerek görmek

Eklenti Yapma Serimizin dördüncü kısmına hoş geldiniz! Şimdiye kadar yolculuğumuzda, WordPress eklentisi Bolarplate kullanarak kendimizi zihndeki yapı ile hazırladık ve içeriğimizin kendi özel gönderimizi kaydederek arkada yaşayabilmesi için ayrı bir yer yaptık. Bu kez, eklenti kullanıcılarımıza sisteme girilen alıntıları gerçekten görüntülemek için seçenekler sunacağız. Rastgele alıntıların seçimini ele almak için birkaç işlev oluşturarak başlayacağız ve ardından kendi kısa kod seçeneklerimizi oluşturmaya geçeceğiz.
Bu taksiti tamamladığımızda, yönetici aracılığıyla kalplerimize içerik ekleyebilmeliyiz ve ön uçta diğer sayısız eklentinin tanıdık bir şekilde kolayca gösterebilmeliyiz. İlgilendiğimiz verilere erişerek başlayalım. Teklifimizi depolamak için özel bir yazı türü kullanmakta zorluk çektikten sonra teklifimize erişmek, dikkate alınması gereken ilk öğe veri seçiminin sonuçlarını geri yüklemektir. Eklenti El Kitabının ilgili kısmına kısa bir yolculuk, bazı yararlı açıklayıcı kodlarla birlikte bunun nasıl yapılacağına dair iyi bir genel resim sunuyor:
$ args = dizi (‘post_type’ => ‘ürün’, ‘post_per_page’ => 10);
$ loop = yeni wp_query ($ args);
while ($ loop-> hack_posts ()): $ loop-> the_post ();
Başlık();
echo ‘
‘;
İçerik ();
echo ”;
geçici; Yukarıda görebileceğiniz gibi, sonuç almak için wp_query () kullanacağız ve aradığımız belirli yayın türlerini ve iade edilecek sayfa başına sonuç sayısını tanımlayan argümanı devam ettireceğiz. Şimdiye kadar teoride iyi ve havalı görünüyor, ancak bu iki doğrudan soruna neden oluyor: Çalıştığını nasıl hızlı bir şekilde test ediyoruz?
WordPress Bolarplate eklentisini kullanarak bunu ayarlarımıza nereye koyacağız?
Bu soruları tek tek tartışalım. Testlerimiz, WP_Query () belgeleri ve WP_Query Rachel McCollin Mastering Serisi tarafından gösterildiği gibi veritabanından rastgele bir teklif geri yükleyebilir, bu da şiddetle tavsiye edilir, her şeyi test etmek için döngüde çalışmamız gerekir. Bugün yerel test sitemizde lüks bir şeyimiz yok, bu nedenle her şeyin çalışıp çalışmadığını hızlı bir şekilde görmek için varsayılan temamızın ana sayfa şablonuna sadece bazı keşif kodları gireceğiz. Bizim durumumuzda, /themes/twentysixteen/page.php. Özel sevkiyat türümüz daha önce RDM alıntı olarak tanımlanmıştı, bu yüzden aşağıda yaptığımız şey sevkiyatı almak ve ekrandaki listeye takmaktı.
$ args = dizi (
‘Post_type’ => ‘RDM-Tasarısı’
);
// Kueri özel.
$ query = yeni wp_query ($ args);
// Kuyruk sonuçlarına sahip olup olmadığımızı kontrol edin.
if ($ query-> heat_posts ()) {
echo ‘
‘;
// Kuyruk sonuçlarını tekrarlamaya başlayın.
while ($ query-> heat_posts ()) {
$ query-> the_post ();
?>
<a href=" “başlık =” <? php the_title_attribute ();

<? Php
}
yankılar '
';
}
// Orijinal yazı verilerini döndürün.
wp_reset_postdata (); Yönetici'deki özel bölümümüze birçok sağlam alıntı ekledik:
Yukarıdaki koda dayanarak, başlıklarının ön tarafta kontrol ettiğimiz herhangi bir sayfanın altında bir bağlantı olarak kayıtlı olduğunu görmeyi umuyoruz. Http://www.randomquotes.dev/sample-page adresinden WordPress ile gönderilen örnek sayfaya kısa bir yolculuk yapalım:
Görünüşe göre iş dünyasında potansiyelimiz var! Şimdi görüntülenen tırnak sayısını sınırlayabilmemiz ve bunu yaptığımızda rastgele olduğundan emin olmak istiyoruz. Önceki kodumuza aşağıdaki iki argümanı ekleyin Başarılı olacaktır: $ args = Array (

‘Post_type’ => ‘rdm-quote’,

‘Posts_per_page’ => 4,
‘Sipariş’ => ‘ve’
); Örnek sayfamızdaki bazı tıklamalar, doğru miktarda sonuç elde ettiğimizden emin olmak için gereken her şeydir ve sonuçlar her zaman farklıdır:
İşler güzel görünüyor! Şimdi bu işlevin eklentimizde nerede olması gerektiğini öğrenelim. Eklenti seçeneğimize rastgele alıntılar eklemek İlk başta sıralamak için arayacağımız ana kullanıcı ekranı kısa kodlar aracılığıyla tırnak ekleme yeteneğidir. Halka açık bir şey gibi geliyor, bu yüzden eklentimizdeki klasöre /genel olarak bakacağız. Önceki taksitlerimiz gibi, GitHub’daki pratik illüstrasyon eklentisi Chris Wilcoxson’un gerçek uygulanması açısından bazı talimatlar aldık, bu da takip ederseniz denemeye değer.
Bizim durumumuzda, /public/class-rdm-quotes-public.php: /*** içindeki ana genel sınıfımıza rastgele bir teklif döndürmek için basit bir işlev ekleyerek başlayacağız. Posta nesnesini rastgele bir tekliften geri yükler

*
* @Param Array $ Params Array İsteğe Bağlı Parametreler
* İade edilecek alıntılanan yayınların sayısı
*
* @Bir nesne gönderisinin nesnesi
*/
Genel işlev get_rdm_quotes ($ params) {
$ back = ”;
$ args = dizi (
‘Post_type’ => ‘rdm-quote’,
‘Posts_per_page’ => $ params,
‘Sipariş’ => ‘ve’
);
$ query = yeni wp_query ($ args);
if (is_wp_error ($ query)) {
$ return = ‘oops! … Sizin için sevkiyat yok!’;
} değilse {
$ return = $ query-> yayınlar;
}
Geri $ geri;
} // get_rdm_quotes () Her şey yolunda, bu, yayın nesnelerini geri yükleyecek ve bir parametre olarak kaç sonuç aradığımızı belirlememize izin verecektir. Şimdi kullanımına kısa kod aracılığıyla bakalım.
Eklentimizdeki kısa kodu etkinleştirme Eklentide kısa bir kod kaydetmek için El Kitabı Eklentisi Kılavuzu hakkında bir bakışta, işlemlerin temellerinin nispeten kolay olduğunu gösterir. Init’e kısa kod kaydını bağlamamız ve daha sonra WordPress’i çeşitli şeyleri işlemek için kullanacağımız işleve yönlendirmemiz gerekir. Yerel düzenlememiz durumunda, bu iki şey yapmak anlamına gelir. Her şeyden önce DeFine_Public_hooks () yöntemine basit bir kod satırı ekliyoruz /includes/class-my-rdm-quotes.php: /**
* Halkın baktığı işlevle ilgili tüm kancaları kaydedin
* Eklentiden.

*
* @sejak 1.0.0
* @Personal erişim
*/
kişisel işlev define_public_hooks () {
$ plugin_public = yeni my_rdm_quotes_public ($ this-> get_plugin_name (), $ this_version ()); $ this-> loader-> add_aason (‘wp_enqueue_scripts’, $ plugin_public, ‘enqueue_styles’);
$ this-> loader-> add_action (‘wp_enqueue_scripts’, $ plugin_public, ‘enqueue_scripts’);
$ this-> loader-> add_action (‘init’, $ plugin_public, ‘register_shortcodes’);
} Şimdi, hazırlamak istediğimiz belirli kısa kodlarla bağlantı kurmak için /public/class-rdm-quotes-public.php adresindeki ana genel sınıfına gerçekten gireceğiz:
/**
* Tüm kısa kodları aynı anda kaydedin
*
* @return [type] [açıklama]
*/
genel işlev register_shortcodes () {
add_shortcode (‘randomquote’, dizi ($ this, ‘list_quotes’));
} // register_shortcodes () Belgede gösterildiği gibi, bu temel olarak WordPress kısa kod adlarını ve çalıştırmak için kullanacağımız belirli işlevleri anlatmayı içerir. Şimdi buna dönelim. Tamam ekranda kısa kod içeriğini görüntüler, liste_quotes () işlevimizi doldurarak sayfada bazı sonuçlar alalım: /**
* Rastgele bir kısa kod teklifinin işlenmesi
*
* @Param Array $ Nitelikler Kısa koddan
*
*
* @Aturn karışımı $ çıkış çıktı arabelleği
*/
Genel işlev list_quotes ($ atts = array ()) {
Ob_start ();
$ args = Shortcode_atts (dizi (
‘Numaralar’ => 5,
‘Tırnaklar-Title’ => ‘Bilgelik Kelimeleri’,),)
$ Atts
);
$ öğeler = $ this-> get_rdm_quotes ($ args [‘num-Quotes’]);
// var_dupp ($ öğe);
if (is_array ($ öğeler) || is_object ($ öğeler)) {
echo (‘

‘. $ args [‘tırnak başlıkları’]. ‘

‘);
foreach ($ öğe olarak $ öğe) {echo (‘
‘. $ item-> post_title. ‘| ‘. $ item-> post_content. ‘
‘);
} // her biri için
echo (‘
‘);
} değilse {
Echo $ öğe;
}
$ output = ob_get_contents ();
ob_end_clean ();
geri $ çıktı;
} // get_rdm_quotes () Burada kod kalitesi için herhangi bir ödül kazanmayacağız, ancak yukarıda bir dizi anahtar kutu kontrol edildi:
Shortcode_atts () () işlevinden kısa kod özniteliklerini alabilir ve yayın ve başlık sayısı için varsayılan olarak ayarladık.
Hızlı bir şekilde işlediğimiz gerçek verileri kontrol etmemiz gerekirse, hızlı ve kirli bir var_dupp () çağrısı var.
Verileri sayfada görüntülemek için temel HTML düzeni ile birleştiriyoruz ve ön taraftaki ekranın potansiyel bozukluğunu önlemek için çıkış arabelleğini kullanıyoruz.
Gerçekten burada iyileştirme için birçok oda var, ancak önce bazı sonuçlar alıp alamayacağımızı görelim. Temel kısa kodumuzu standart gönderide arayarak başlayacağız:
Gönderinin doğrudan sürümünü görünce, varsayılanın iyi çalıştığını gördük:
Şimdi de işleyip çalışmadığını görmek için kendi özelliklerimizi ekleyelim:
Serinletici sayfaları hızlı bir şekilde ve niteliklerin iyi ve serin bir şekilde çalıştığını görebiliriz:

admin

Bir Cevap Yazın

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