处理这种情况的最佳方法是通过JavaScript。这样,只要选定的值发生更改,就可以立即隐藏/显示相关的元盒。
使用wp_enqueue_script()
在里面functions.php
要在管理区域中加载自定义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,它只是根据页面模板下拉列表中的选定值隐藏或显示一个元框。在本例中,我仅在选择默认页面模板的情况下显示post缩略图的元框:
(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);