Dalam tutorial ini, kami akan mempelajari cara yang disyorkan 'WordPress' untuk membuat halaman tetapan tema, iaitu, menggunakan API Tetapan WordPress. API Tetapan WordPress telah ditambah dalam WordPress 2.7 dan sejak itu ia telah menjadi salah satu API WordPress yang paling popular. Tutorial ini juga berguna jika anda merancang untuk menambah halaman tetapan ke plugin WordPress anda. Mari kita mulakan.
Apa yang akan kita sertakan dalam halaman tetapan tema?
Membuat item Menu Halaman Tetapan Tema
kita boleh membuat item menu menggunakan API menu WordPress. Inilah kod untuk membuat item menu.
di sini, panel tema adalah ID unik yang mewakili item menu kami. Tema_SETTINGS_PAGE adalah panggilan balik untuk memaparkan kandungan halaman yang dibuat oleh API Menu. Kami akan mengodkan fungsi ini seterusnya.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
inilah caranya.
Gambaran keseluruhan tetapan API
Demi tutorial ini, kami hanya akan membuat satu bahagian dan akan meletakkan semua bidang di dalam bahagian itu.
inilah kod untuk fungsi tema_settings_page untuk membuat bahagian dan tambahkan butang hantar.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
di sini kita mendaftarkan seksyen menggunakan settings_field dengan seksyen ID. Tema-Options adalah ID kumpulan untuk semua bidang yang dimiliki oleh seksyen. Akhirnya, fungsi hantar_button () menggema butang hantar untuk halaman tetapan tema kami.
inilah cara yang harus dilihat.
Sekarang, mari tambahkan medan dalam halaman Tetapan kami untuk menyimpan URL profil Facebook dan Twitter kami. Hampir setiap tema WordPress mempunyai pilihan profil sosial, oleh itu ia adalah contoh yang berguna dan praktikal.
Berikut adalah kod untuk menambah medan teks input menggunakan API Tetapan.
function theme_settings_page() { ?> <span><span><span><div</span> class<span>="wrap"</span>></span> </span> <span><span><span><h1</span>></span>Theme Panel<span><span></h1</span>></span> </span> <span><span><span><form</span> method<span>="post"</span> action<span>="options.php"</span>></span> </span> <span><span><?php </span></span><span> <span>settings_fields("section"); </span></span><span> <span>do_settings_sections("theme-options"); </span></span><span> <span>submit_button(); </span></span><span> <span>?></span> </span> <span><span><span></form</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><?php </span></span><span><span>}</span></span>
Selepas panel admin diasaskan, kami mendaftarkan bahagian dan paparan paparan medan. Di sini kita menggunakan tiga fungsi penting:
Inilah halaman tetapan kami sekarang.
Kami kini melihat cara menambah medan teks input menggunakan halaman Tetapan kami. Mari lihat bagaimana untuk menambah kotak semak dengan menyediakan pilihan untuk memilih antara susun atur statik atau responsif.
mari kita lihat bagaimana untuk memperluaskan fungsi Display_Theme_Panel_Fields untuk memaparkan kotak semak untuk memilih antara susun atur.
inilah kod untuk mencapai ini.
function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
kami menambah medan tetapan baru menggunakan add_settings_field dan mendaftarkannya menggunakan daftar_settings seperti biasa. Satu perkara yang perlu diperhatikan, jika kita ingin memberitahu sama ada pengguna telah memeriksa kotak semak atau tidak, kami menggunakan fungsi yang diperiksa ().
Fungsi yang diperiksa () membandingkan nilai dengan nilai lain, jika ia sama maka ia bergema atribut yang diperiksa, jika tidak.
Inilah cara halaman tetapan kami kelihatan sekarang.
Fungsi register_setting mengambil hujah ketiga yang merupakan panggilan balik, panggilan balik ini dipecat sebelum ia menyimpan tetapan ke dalam pangkalan data. Kami boleh menggunakan panggil balik ini untuk mengendalikan muat naik.
inilah kod untuk memuat naik logo di halaman tetapan kami.
function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_layout_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="checkbox"</span> name<span>="theme_layout"</span> value<span>="1"</span> <span><span><?php checked(1, get_option('theme_layout'), true); ?></span></span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("theme_layout", "Do you want the layout to be responsive?", "display_layout_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span> <span>register_setting("section", "theme_layout"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
di sini, kami menggunakan wp_handle_upload untuk menyimpan fail imej dan mengambil URLnya dan menyimpannya sebagai pilihan.
Inilah caranya halaman tetapan kami sekarang, ia membentuk dengan baik!
Tema perlu mengambil nilai tetapan di hujung depan. API Tetapan secara dalaman menyimpan nilai menggunakan API Pilihan. Oleh itu, anda boleh mengambil nilai menggunakan fungsi get_option ().
Ia agak mudah, inilah kod.
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
Dalam artikel ini kita melihat bagaimana kita boleh membuat halaman tetapan tema menggunakan API Tetapan. Kami mencipta medan input teks, fail dan kotak semak untuk mengambil input dalam pelbagai format data. Teruskan dan cuba mengembangkan halaman dan tambahkan lebih banyak borang kawalan diri anda.
Untuk membuat medan borang untuk tetapan anda, anda boleh menggunakan fungsi add_settings_field (). Fungsi ini mengambil beberapa parameter termasuk id bidang, tajuk medan, fungsi panggil balik yang mengeluarkan medan borang, halaman di mana medan harus dipaparkan, bahagian di mana medan harus ditambah, dan pelbagai argumen Untuk bidang.
Untuk memaparkan tetapan anda pada halaman tetapan, anda boleh menggunakan Fungsi Tetapan_Fields () dan DO_SETTINGS_SECTIONS () dalam borang anda. Fungsi Tetapan_Fields () mengeluarkan medan halaman nonce, tindakan, dan pilihan untuk halaman tetapan anda, manakala fungsi DO_SETTINGS_SECTIONS () mengeluarkan bahagian dan medan yang ditambahkan ke halaman. ?
Atas ialah kandungan terperinci Buat halaman Tetapan Tema WP dengan API Tetapan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!