Tema Özelleştirici Boilerplate – Koşullu Seçenekler, Alt Temalar ve Eklentiler

  1. 1. WordPress Tema Özelleştiricisine Giriş
  2. 2. WordPress Tema Özelleştiricisi ile Etkileşim
  3. 3. WordPress Tema Özelleştirici
  4. 4. WordPress Teması Özelleştiricisinin Genişletilmesi
  5. 5. Şu Anda Okuma: Tema Özelleştirici Boilerplate – Koşullu Seçenekler, Alt Temalar ve Eklentiler

Şimdiye kadar Theme Customizer Boilerplate ve kancalarını kullanarak tema seçeneklerini kullanmanın ne kadar basit olduğunu gördük. Muhtemelen hatırladığınız gibi, en önemli adım ‘Thsp_cbp_options_array’ filtre kancası ve temanızda kullanmak istediğiniz seçenek dizisini geçirme.


WordPress eylemi ve filtre kancaları – Eklenti API’sı – ve bunların nasıl çalıştığını zaten bildiğinizden eminim, ancak her ihtimale karşı, hızlı bir özet var (örnek olarak filtre kancalarını kullanarak). Özel işlevinizi tanımlayabilir ve add_filter işlevini kullanarak mevcut bir filtreye bağlayabilirsiniz:

add_filter ($ tag, $ function_to_add, $ öncelik, $ accept_args);

Öncelik argümanına odaklanalım. Varsayılan değeri 10’dur, bu nedenle başka bir sayı kullanmazsanız, işlevinizin yürütme önceliği budur. Sayıyı düşürün, daha önce işleviniz yürütülür. Yani böyle bir şey yaparsanız:

// İlk mesaj ekleme
işlev my_theme_add_first_message ($ content) {
$ content. = '

ilk mesaj

'; $ içerik döndür; } add_filter ('the_content', 'my_theme_add_first_message', 1); // İkinci mesaj ekleme işlev my_theme_add_second_message ($ content) { $ content. = '

İkinci Mesaj

'; $ içerik döndür; } add_filter ('the_content', 'my_theme_add_second_message', 2);

The.content işlevini single.php veya başka bir şablonda çağırdığınızda içerik içeriği, ardından İlk İleti ve ardından İkinci İleti gösterilir. Bu kod snippet’indeki sıraları olduğu için değil, yürütme önceliği parametresi nedeniyle. Kancaları tepeden aşağı yuvarlanan kartopları gibi düşünerek her türlü şeyi toplarlar..

Bu, Tema Özelleştirici Isıtıcısı için nasıl geçerlidir?

İçine asabilirsiniz ‘Thsp_cbp_options_array’ öncelik değeri 1 olarak ayarlanmış özel bir işlev (ör. my_theme_options_array) kullanarak temanızın function.php dosyasından ‘Thsp_cbp_options_array’ filtre kancası bunu daha önce tanımladığınız my_theme_options_array işlevinden SONRA yapacak. Bu örneğe bir göz atın:

işlev my_theme_options_array () {
// Varsayılan gerekli yeteneği elde etmek için yardımcı işlevini kullanma
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = dizi (
// Bölüm Kimliği
'my_theme_new_section' => dizi (

'varolan_section' => yanlış,
'args' => dizi (
'title' => __ ('Yeni Bölüm', 'alan_metin_alanim'),
'öncelik' => 10
),
'fields' => dizi (
/ *
* Radyo alanı
* /
'my_radio_button' => dizi (
'setting_args' => dizi (
'varsayılan' => 'seçenek-2',
'type' => 'seçenek',
'capability' => $ Instagram Hesabındaki Resim ve Videoları thsp_cbp_capability,
'transport' => 'yenile',
),
'control_args' => dizi (
'label' => __ ('Radyo Düğmem', 'my_theme_textdomain'),
'type' => 'radyo', // Radyo kontrolü
'choices' => dizi (
'option-1' => dizi (
'label' => __ ('Seçenek 1', 'my_theme_textdomain')
),
'option-2' => dizi (
'label' => __ ('Seçenek 2', 'my_theme_textdomain')
),
'option-3' => dizi (
'label' => __ ('Seçenek 3', 'my_theme_textdomain')
)
),
'öncelik' => 3
)
)
)
)
);

$ seçenekler döndür;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Bu, Tema Düğmesi’ne Radyo Alanım Düğmesi adı verilen bir alan ekleyerek Yeni Bölüm ekleyecektir. Ardından siz veya başka biri temanız için bir alt tema geliştirir ve Yeni Bölümü tutmaya karar verir, ancak Radyo Düğmem yerine Onay Kutum’a sahip olmak daha iyi olabilir. Kolay:

işlev my_child_theme_options_array ($ options) {
// Varsayılan gerekli yeteneği elde etmek için yardımcı işlevini kullanma
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Bu kez, yalnızca $ options dizisindeki my_theme_new_section içindeki alanları düzenliyoruz
* /
$ options ['my_theme_new_section'] ['alanlar'] = dizi (
'my_checkbox_field' => dizi (
'setting_args' => dizi (
'default' => doğru,
'type' => 'seçenek',
'capability' => $ Instagram Hesabındaki Resim ve Videoları thsp_cbp_capability,
'transport' => 'yenile',
),
'control_args' => dizi (
'label' => __ ('Onay Kutum', 'alanım_etki_alanim'),
'type' => 'onay kutusu', // Onay kutusu alan kontrolü
'öncelik' => 2
)
)
);

$ seçenekler;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

$ Options parametresini my_theme_options_array öğesine geçirmediğimi ve my_child_theme_options_array işlevinde gerçekleştirmediğimi fark ettim mi? Çünkü ilk bağlandığımda ‘Thsp_cbp_options_array’ hook Tema Özelleştirici Boilerplate örnek seçeneklerini geçersiz kılmak istedim. Ardından, alt temamdan tekrar bağlandığımda, ana temanın seçeneklerini tamamen silmek istemedim, sadece hafifçe düzenleyin. Bu yüzden $ seçenekler dizisinin tamamını değil, yalnızca $ options [ththeme_new_section ’] [‘ alanlar ’] ile uğraşıyorum..

Tabii ki, ‘Thsp_cbp_options_array’ ana temanızdaki bağlantıyı bir kereden fazla filtreleyin .. Diyelim ki temanıza eklenti bölgesi özellikleri eklememeyi seçtiniz ve eklentilerin istediklerini yapmasına izin verin. Şimdi bazı Tema Özelleştirici seçeneklerini yalnızca belirli bir eklenti etkinse göstermek istiyorsunuz. Yine, kolay:

işlev my_plugin_dependency_options_array ($ options) {
// Varsayılan gerekli yeteneği elde etmek için yardımcı işlevini kullanma
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Yalnızca 'test-plugin.php' etkinse my_plugin_dependency_section eklenir
* /
if (is_plugin_active ('test-eklentisi / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = dizi (
'varolan_section' => yanlış,
'args' => dizi (
'title' => __ ('Eklenti Bağımlılığı', 'alan_metin_alanim'),
'öncelik' => 10
),
'fields' => dizi (
/ *
* Metin alanı
* /
// Alan Kimliği
'new_text_field' => dizi (
'setting_args' => dizi (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'seçenek',
'capability' => $ Instagram Hesabındaki Resim ve Videoları thsp_cbp_capability,
'transport' => 'yenile',
),
'control_args' => dizi (
'label' => __ ('Yalnızca', 'my_theme_textdomain' durumunda görünür),
'type' => 'metin', // Metin alanı denetimi
'öncelik' => 5
)
),
)
);

}

$ seçenekler;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Geliştirmek istiyorum çekirdek işlev eklentisi temanızla birlikte kullanılmalı mı? İçine asabilirsiniz ‘Thsp_cbp_options_array’ eklentinizin dosyalarından birinden, tıpkı bir temanın function.php dosyasından yaptığınız gibi.

Seçmeyin Çılgın

Geliştirdiğiniz bir temaya her seçenek eklediğinizde, WordPress’in temel ilkelerinden birini korumanız gerekir – Karar Seçenekleri Değil – akılda. Taşımak ve temanızın sahip olduğu her küçük ayrıntı için kullanıcı seçenekleri eklemeye başlamak kolaydır, ancak bu kimseye bir iyilik yapmaz. Umarım bu birkaç püf noktası, özellikle eklentiye bağlı seçenekler eklemek, temanızın seçeneklerinin mümkün olduğunca düşük tutulmasına yardımcı olur.

Sonuçta, temanızın her bir öğenin her kenar yarıçapı gibi şeyler için seçenekleri varsa, bu bir tema değil, bir WYSIWYG editörüdür ve muhtemelen harika bir tema değildir..

Beyaz bir gömlek almazsınız, çünkü ekstra çaba ile onu bir masa örtüsüne dönüştürebilirsiniz, çünkü onu “beyazlık” ı sevdiğiniz için satın alırsınız. WordPress temaları da böyle olmalı, içeriği belirli bir şekilde sunmalı, akla gelebilecek her şeyi yapmaya çalışmamalıdır. Bir tema geliştiricisiyseniz, kullanıcı beklentilerinin olması gerektiği gibi olduğundan emin olmak sizin işinizdir..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map