WordPress eklentisi oluşturma Bölüm 5: Ayarlarımızı tamamlayın
Başından beri eklentiler geliştirme ile ilgili dizimizin beş bölümüne hoş geldiniz. İlerleme şimdiye kadar iyi ve istikrarlı ve bu aşamada teorik işlevlerimizin çoğunu yapmayı başardık. Son taksitte, nihayet ekrandaki çalışmalarımızın sonuçlarını kısa bir kod şeklinde gördük. Bu sefer ön ve arkaya girip çıkıyoruz. Daha önce görünümü yönetme konusunda yapılması gereken küçük bir iş bıraktık ve ayrıca birinci bölümde belirtilen ayarlar sayfasını da görmedik. Bugün iki kutuyu işaretleyeceğiz ve boş zamanlarınızda daha fazla keşfetmeniz için yol boyunca bir dizi temel kavrama dokunacağız. Şablon konusunu kısaca tartışarak başlayalım.
Kısa kod çıktımızı dizimizde önceki şablonla düzenleyin, ekranda kısa bir kod aracılığıyla alıntılar görüntülemeyi başardık, ancak gerçekten biraz istenen içerik bırakma biçimleri, ana sınıfımızda sadece çok fazla HTML koydu. /-rdm-Quotes /public /class-me-rdm-Quotes-public.php. Bir bakışta klasör, çeşitli şeyleri ele almak için daha iyi bir yer olduğunu gösterir:
if (is_array ($ öğeler) || is_object ($ öğeler)) {
Insors (‘kısmi/my-rdm-quotes-public-display.php’);} Daha sonra HTML oluşturmayı doğrudan bu dosyada işleyeceğiz:
post_title)?
Her şeyin daha önce olduğu gibi görüntülendiğinden emin olmak için öne kısaca bakın ve neredeyse devam etmeye hazırız:
Yukarıda her şey güzel ve havalı görünüyor. Bu aşamada, şablonunuzu bu yaklaşımı kullanarak çok daha modüler bir mod haline getirmek için çok fazla alan olduğu gösterilmelidir. Daha önce de belirtildiği gibi, şimdi GitHub’da kullanılan Chris Wilcoxson eklentisinin etrafında iyi bir kök, keşfedilecek tamamen geliştirilmiş versiyona erişmenizi sağlayacaktır. Tamam – dikkatimizi ayarlara çevirelim! Ayarlarımızın genel açıklaması çoğu eklenti yararlı olmak için bir tür kullanıcı ayarı gerektirir ve WordPress eklentisi el kitabı, yaparken bizim için mevcut olan temel seçenekleri hazırlamak için çok kısa bir çalışma yapar.
Eklediğimiz önceki işlevler gibi, ele alınması gereken ilk soru, her şeyi WordPress Bolarplate eklenti çerçevesi tarafından sağlanan yapıya ayarlamamız gereken yerdir. Şimdi buna bakalım. Neyse ki WordPress Bolarplate eklentisi ile bir ayar sayfası oluşturarak, WordPress eklentisi ile Ayarlar seçeneğinin yapımından oldukça ayrıntılı olarak yükselen bir dizi pratik öğretici var. Kendi amaçlarımız için, burada süper basit şeyleri koruyacağız, ancak Firdaus Zahari ve Scotch Guillaume Kanofi serisi tarafından Sitepoint, her ikisi de takip ederseniz görülmeye değer. Aşağıdaki son yaklaşımda çok şey çizeceğiz. Doğrudan üç şey yapmamız gerekiyor: Seçenek sayfasını Ayarlar menüsüne ekleyin.
Sayfanın bağlantısını mevcut eklenti yönetici ekranımıza yapıştırın.
Aslında arkadaki sayfa için.
Bunun açıkça bir tür yönetici işleri olduğu düşünüldüğünde, şimdiye kadarki deneyimlerimize dayanarak, doğrudan ana sınıf DI /MY-RDM-Quotes /Admin /class-rdm-Quotes-admin.php’ye gideceğiz. Bir şeyleri mevcut eklenti sayfasına bağlamak ve ayrıca gerçek sayfaları oluşturmak için add_options_page (), add_raction_links () ile işlemek için kullanacağız:
/**
* Bu eklenti için yönetici menüsünü WordPress gösterge paneli menüsüne kaydedin.
*
* @sejak 1.0.0
*/
genel işlev add_plugin_admin_menu () {
add_options_page (‘rastgele teklif seçeneklerim’, ‘rastgele teklifim’, ‘manage_options’, $ this-> plugin_name, dizi ($ this, ‘display_plugin_tup_page’));
}
/**
* Eklenti sayfasına ayar eylemine bir bağlantı ekleyin.*
* @sejak 1.0.0
*/
genel işlev add_raction_links ($ links) {
$ setts_link = dizi (
‘ Plugin_name).’ “> ‘. __ (‘ayar’, $ this-> eklenti_name). ‘‘,
);
Return array_merge ($ setts_link, $ links);
}
/**
* Bu eklenti için ayar sayfasını oluşturun.
*
* @sejak 1.0.0
*/
genel işlev ekran_plugin_setup_page () {
Incld_once (‘kısmi/my-rdm-quotes-admin-display.php’);
} Klasörde /yöneticide kısmi olanla aynı yaklaşımı üstte klasörde /genel olarak yaptığımızla aynı yaklaşımı ele alıyoruz. Ancak, bu aşamada arkayı ziyaret edersek çok fazla görmeyeceğiz. Hala ana sınıfımızı neler olduğunu fark etmelidir. /Access /class-my-rdm-quotes.php’ye dönelim ve define_admin_hooks () işlevi için ek ek ekleyelim:
// menü öğeleri ekle
$ this-> loader-> add_action (‘admin_menu’, $ plugin_admin, ‘add_plugin_admin_menu’);
// Ayarları eklentiye ekleyin
$ plugin_basename = plugin_basename (eklenti_dir_path (__dir__). $ this-> plugin_name. ‘.php’);
$ this-> loader-> add_filter (‘plugin_raction_links_’. $ plugin_basename, $ plugin_admin, ‘add_raction_links’);
Şimdi yöneticiye dönersek, neredeyse iş başında olmalıyız:
Biz yavaşça oraya vardık, ama bağlantılardan birini tıklamak hala bize hiçbir şey vermeyecekti. Birkaç boş parçayı doldurmanın zamanı geldi.
Gereksiz ayrıntılı bir okyanusta kaybolmaktan kaçınmak için seçenek alanını ekleyerek, burada çok soyulmuş şeyleri koruyacağız. Kullanıcılarımız için sağlayacağımız tek seçenek, teklifimiz için başlığı görüntülemek için küresel bir seçenektir – başka bir deyişle basit bir onay kutusu. Yukarıdaki koddan beklediğiniz gibi, bunu zaten var olan (çok az olmasına rağmen) /admin/my-rdm-quotes-admin-display.php dosyasında yapacağız. Bazı kodlarda kalalım:
plugin_name); ?>
Bizi nereye getirdiğine bakalım:
Oraya gittik! Ancak, hala yapmamız gereken bazı hızlı bağlantılar var. İlk olarak, /admin/class-rdm-quotes-admin.php adresindeki ana yönetici sınıfımıza geri dönmek için çok hızlı bir doğrulama işlevi ekleyeceğiz: genel işlevin doğrulanması {// Tüm giriş onay kutuları
$ geçerli = Array ();
// Alıntı Başlığı
$ geçerli [‘quo-title’] = (isset ($ input [‘quo-title’])) &&! boş ($ giriş [‘quo-title’]))? 1: 0;
geri $ geçerli;
} Ardından, API’dan Register_setting () kullanarak güncellemeleri de işleyen bir işlevde kullanacağız:
Genel işlev options_update () {
register_setting ($ this-> plugin_name, $ this-> plugin_name, dizi ($ this, ‘validate’));
} Şimdi yalnızca /kısmi olarak geri dönmemiz ve My-rdm-Quotes-Admin-display.php: eklenti_name) içindeki form kodumuza hızlı bir PHP satırı eklememiz gerekiyor; ?> Son olarak, /Access /class-my-rdm-quotes.php: $ this-> loader-> add_action (‘admin_init’, $ plugin_admin’deki ana sınıfımızda option_update () işlevini tekrar admin_init kancasına kaydedeceğiz. , ‘options_update’); Bu aşamada, gerçekten kararlar verebilir ve değişiklikler tasarruf edebiliriz!
Formu gönderdikten sonra ikna edici bir depolama ayarları aldık, ancak onay kutusu hala kontrol edilmedi. Veritabanına hızla göz atın, her şeyin perde arkasında çalıştığını gösteriyor:
Bulmacanın son kısmı, ayar sayfamızın depo sonrası değişiklikleri gerçekten yansıtmasını sağlamaktır: plugin_name);
// Alıntı Başlığı $ quo_title = $ options [‘quo-title’]; ?>
plugin_name);
do_settings_sections ($ this-> eklenti_adı);
?>
Bunu, eklenti seçeneğimizde şu anda saklananlara erişerek ve yukarıdaki gibi onay kutusu girişimiz alanında hızlı bir inceleme yaparak yapıyoruz. Yönetici ekranını şimdi yeniden yükleyin ve her şey yoluna girecek:
Kararın ön ucuna da yansıtılmasını sağlayarak bitirelim.Ancak, tüm egzersizin özü bu!Seçimimizi aslında seçeneklerimizi kullanarak kullanmak iyi ve kolaydır.Yukarıda yaptığımız gibi, yalnızca doğuştan gelen get_option () işlevini kullanmamız gerekir.Bizim durumumuzda, /public/partials/my-rdm-quotes-public-display.php: <? Php $ options = get_option ('my-rdm- alıntılar ');
if ($ options ['quo-title']) {
echo ('
‘. $ args [‘Quotes-title’]. ‘
‘);
}
?> Arkada görüntülenecek seçeneği seçin ve aşağıdakileri alırız:
Sayfayı verin ve yeniden yükleyin ve başlığımız beklendiği gibi kaybolur: