您可以通过JavaScript很容易地做到这一点。以下是您需要采取的步骤。我在下面创建了一个示例(未测试)脚本,作为您的概念证明。
注册元框
add_action(\'add_meta_boxes\', \'foo_page_template_meta_box\');
function foo_page_template_meta_box(){
add_meta_box(
\'foo_page_template_options\',
__(\'Foo Page Template Options\'),
\'foo_page_template_options\',
\'page\'
);
}
function foo_page_template_options(){
//Your custom field form goes here
}
将JavaScript和CSS添加到admin\\u head以便发布。php和post new。php
add_action(\'admin_head-post.php\', \'foo_page_template_script\');
add_action(\'admin_head-post-new.php\', \'foo_page_template_script\');
function foo_page_template_script(){
global $post;
# Only use this script for pages
if(\'page\' !== $post->post_type)
return;
#Name of page template file
$file = \'foo_page_template.php\';
$output = "
<!-- Hide the Meta Box -->
<style type=\'text/css\'>
#foo_page_template_options{display:none;}
</style>
<script type=\'text/javascript\'>
jQuery(document).ready(function($){
var _file = \'$file\';
var _meta_box = $(\'#foo_page_template_options\');
var _page_template = $(\'#page-template\');
//Show meta box on page load
if(_file == _page_template.val())
_meta_box.show();
//Sniff changes to the page template dropdown
_page_template.change(function(){
if(_file == _page_template.val())
_meta_box.show();
});
});
</script>
";
echo $output;
}
这种方法的主要前提是在所有“页面”编辑屏幕上加载元框,但仅当页面模板选择值与页面模板文件名匹配时才显示元框。
希望这有帮助!