Tema Customizer Boilerplate – Opsi Bersyarat, Tema dan Plugin Anak

  1. 1. Pengantar Penyesuai Tema WordPress
  2. 2. Berinteraksi dengan WordPress Theme Customizer
  3. 3. Kustomizer Boilerplate Tema WordPress
  4. 4. Memperluas Plating Kustomizer Tema WordPress
  5. 5. Sedang membaca: Tema Customizer Boilerplate – Opsi Bersyarat, Tema dan Plugin Anak

Sejauh ini kita telah melihat betapa sederhananya untuk menangani opsi tema menggunakan Theme Customizer Boilerplate dan kaitnya. Seperti yang mungkin Anda ingat, langkah paling penting adalah mengaitkannya ‘Thsp_cbp_options_array’ filter hook dan lewati array opsi yang ingin Anda gunakan dalam tema Anda.


Saya yakin Anda sudah terbiasa dengan tindakan WordPress dan filter hooks – API Plugin – dan cara kerjanya, tapi untuk berjaga-jaga, inilah rekap cepat (menggunakan kait filter sebagai contoh). Anda dapat mendefinisikan fungsi kustom Anda dan mengaitkannya ke filter yang ada menggunakan fungsi add_filter:

add_filter ($ tag, $ function_to_add, $ priority, $ accept_args);

Mari kita fokus pada argumen prioritas. Nilai standarnya adalah 10, jadi jika Anda tidak menggunakan nomor lain, itulah prioritas eksekusi fungsi Anda. Turunkan angkanya, sebelumnya fungsi Anda dieksekusi. Jadi jika Anda melakukan sesuatu seperti ini:

// Menambahkan pesan pertama
function my_theme_add_first_message ($ content) {
$ content. = '

Pesan pertama

'; mengembalikan $ konten; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Menambahkan pesan kedua function my_theme_add_second_message ($ content) { $ content. = '

Pesan kedua

'; mengembalikan $ konten; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Ketika Anda memanggil fungsi konten dalam single.php atau konten posting templat lainnya akan ditampilkan, diikuti oleh Pesan Pertama, diikuti oleh Pesan Kedua. Bukan karena itu perintah mereka dalam cuplikan kode ini, tetapi karena parameter prioritas eksekusi. Pikirkan kait seperti bola salju yang bergulir menuruni bukit sambil memetik segala macam barang di jalan.

Bagaimana ini berlaku untuk Theme Customizer Boilerplate?

Anda bisa masuk ‘Thsp_cbp_options_array’ dari file function.php tema Anda, menggunakan fungsi kustom (mis. my_theme_options_array) dengan nilai prioritas disetel ke 1. Itu berarti fungsi lain yang menghubungkan ke ‘Thsp_cbp_options_array’ filter hook akan melakukannya SETELAH fungsi my_theme_options_array yang sudah Anda tetapkan. Lihatlah contoh ini:

function my_theme_options_array () {
// Menggunakan fungsi helper untuk mendapatkan kemampuan yang dibutuhkan secara default
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = array (
// ID Bagian
'my_theme_new_section' => array (

'existing_section' => false,
'args' => array (
'title' => __ ('Bagian Baru', 'my_theme_textdomain'),
'priority' => 10
),
'bidang' => array (
/ *
* Bidang radio
* /
'my_radio_button' => array (
'setting_args' => array (
'default' => 'option-2',
'type' => 'option',
'kapabilitas' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('Tombol Radio Saya', 'my_theme_textdomain'),
'type' => 'radio', // Kontrol radio
'pilihan' => array (
'option-1' => array (
'label' => __ ('Opsi 1', 'my_theme_textdomain')
),
'option-2' => array (
'label' => __ ('Opsi 2', 'my_theme_textdomain')
),
'option-3' => array (
'label' => __ ('Opsi 3', 'my_theme_textdomain')
)
),
'priority' => 3
)
)
)
)
);

mengembalikan opsi $;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Ini akan menambahkan Bagian Baru ke Penyesuai Tema dengan satu bidang di dalamnya, yang disebut Tombol Radio Saya. Maka Anda, atau orang lain mengembangkan tema anak untuk tema Anda dan memutuskan untuk menyimpan Bagian Baru, tetapi alih-alih Tombol Radio Saya, mungkin lebih baik untuk memiliki Kotak centang Saya. Mudah:

function my_child_theme_options_array ($ options) {
// Menggunakan fungsi helper untuk mendapatkan kemampuan yang dibutuhkan secara default
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Kali ini, kami hanya mengedit bidang di my_theme_new_section di array $ options
* /
$ options ['my_theme_new_section'] ['fields'] = array (
'my_checkbox_field' => array (
'setting_args' => array (
'default' => true,
'type' => 'option',
'kapabilitas' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('Kotak centang Saya', 'my_theme_textdomain'),
'type' => 'checkbox', // Kontrol kotak centang
'priority' => 2
)
)
);

mengembalikan opsi $;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Melihat bahwa saya tidak memberikan parameter $ options ke my_theme_options_array dan melakukannya di fungsi my_child_theme_options_array? Itu karena ketika saya pertama kali ketagihan ‘Thsp_cbp_options_array’ kait saya ingin mengganti opsi sampel Theme Customizer Boilerplate. Lalu, ketika saya terhubung lagi dengan tema anak saya, saya tidak ingin menghapus opsi tema induk sepenuhnya, cukup sunting. Itu sebabnya saya hanya mengacaukan $ options [‘my_theme_new_section’] [‘fields’], bukan seluruh array $ options.

Tentu saja, Anda juga bisa mengaitkannya ‘Thsp_cbp_options_array’ filter hook dari tema induk Anda lebih dari sekali .. Katakanlah Anda memilih untuk tidak menambahkan fitur wilayah plugin ke tema Anda dan membiarkan plugin melakukan apa yang seharusnya. Sekarang Anda ingin menampilkan beberapa opsi Penyesuai Tema hanya jika plugin tertentu aktif. Sekali lagi, mudah:

function my_plugin_dependency_options_array ($ options) {
// Menggunakan fungsi helper untuk mendapatkan kemampuan yang dibutuhkan secara default
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Hanya menambahkan my_plugin_dependency_section jika 'test-plugin.php' aktif
* /
if (is_plugin_active ('test-plugin / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = array (
'existing_section' => false,
'args' => array (
'title' => __ ('Ketergantungan Plugin', 'my_theme_textdomain'),
'priority' => 10
),
'bidang' => array (
/ *
* Bidang teks
* /
// ID Field
'new_text_field' => array (
'setting_args' => array (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'option',
'kapabilitas' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('Hanya menunjukkan jika', 'my_theme_textdomain'),
'type' => 'text', // Kontrol bidang teks
'priority' => 5
)
),
)
);

}

mengembalikan opsi $;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Ingin mengembangkan a plugin fungsionalitas inti untuk digunakan dengan tema Anda (sebagaimana seharusnya)? Anda bisa masuk ‘Thsp_cbp_options_array’ dari salah satu file plugin Anda juga, dengan cara yang sama Anda melakukannya dari file function.php tema.

Jangan Pilihan Gila

Setiap kali Anda menambahkan opsi ke tema yang Anda kembangkan, Anda perlu mempertahankan salah satu prinsip inti WordPress – Keputusan bukan Opsi – dalam pikiran. Mudah terbawa suasana dan mulai menambahkan opsi pengguna untuk setiap detail kecil yang dimiliki tema Anda, tetapi itu tidak menguntungkan siapa pun. Saya harap beberapa trik ini, terutama menambahkan opsi bergantung pada plugin, akan membantu menjaga agar opsi tema Anda serendah mungkin.

Lagipula, jika tema Anda memiliki opsi untuk hal-hal seperti setiap radius batas setiap elemen, itu bukan tema, itu adalah editor WYSIWYG dan mungkin bukan yang hebat.

Anda tidak membeli baju putih karena dengan usaha ekstra Anda bisa mengubahnya menjadi taplak meja, Anda membelinya karena Anda suka “pakaian putih” nya. Tema WordPress juga harus seperti itu, mereka harus menyajikan konten dengan cara tertentu, tidak mencoba melakukan segalanya dengan segala cara yang dapat dibayangkan. Jika Anda seorang pengembang tema, adalah tugas Anda untuk memastikan bahwa harapan pengguna adalah yang seharusnya.

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