問題描述

只有當某個模板被分配到特定的 WordPress 頁面時,我想要顯示一個自定義字段界面。

有任何想法嗎?

最佳解決方案

通過 JavaScript 來處理這種情況的最佳方式。這樣,每當選定的值發生變化時,您可以立即隱藏/顯示相關的 metabox 。

functions.php 中使用 wp_enqueue_script()在管理區域中加載自定義 JavaScript 文件:

add_action('admin_enqueue_scripts', 'my_admin_script');
function my_admin_script()
{
    wp_enqueue_script('my-admin', get_bloginfo('template_url').'/my-admin.js', array('jquery'));
}

需要 jQuery 的腳本本身根據頁面模板下拉列表中選擇的值簡單地隱藏或顯示一個 metabox 。在這個例子中,我只顯示了標籤縮略圖的 metabox,以防選擇了默認頁面模板:

(function($){
$(document).ready(function() {

    var $page_template = $('#page_template')
        ,$metabox = $('#postimagediv'); // For example

    $page_template.change(function() {
        if ($(this).val() == 'default') {
            $metabox.show();
        } else {
            $metabox.hide();
        }
    }).change();

});
})(jQuery);

而且,只是為了好玩,這是一個更短,更少冗長的同一個腳本的版本:

(function($){
$(function() {

    $('#page_template').change(function() {
        $('#postimagediv').toggle($(this).val() == 'default');
    }).change();

});
})(jQuery);

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。