下面是我对元框的一些代码,是否有任何特定的方法将其限制为单个页面模板,如template-servicesinner.php
或page-plain.php
?
$prefix = 'tga_';
$meta_boxes[] = array(
'id' => 'project-box-1', // meta box id, unique per meta box
'title' => 'Project Box 1', // meta box title
'pages' => array('page'), // post types, accept custom post types as well, default is array('post'); optional
'context' => 'normal', // where the meta box appear: normal (default), advanced, side; optional
'priority' => 'high', // order of meta box: high (default), low; optional
'fields' => array(
array(
'name' => 'Review thumbnail',
'desc' => 'Only insert a thumbnail for you review here if you are showing reviews on the homepage (thumbnail should be at least 600x300px). Insert full path to the image, eg. http://yoursite.com/thethumb.jpg',
'id' => $prefix . 'review_thumb',
'type' => 'text',
'std' => ''
),
答案 0 :(得分:2)
元数据的隐藏/显示需要在更改下拉字段后选择“更新”。
function add_meta_box() {
global $post;
if(!empty($post)) {
$pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);
if($pageTemplate == 'your-page-template-here.php' ) {
add_meta_box( $id, $title, $callback, 'page', $context, $priority, $callback_args );
}
}
}
add_action( 'add_meta_boxes', 'add_meta_box' );
根据需要更新第6行和第7行。
答案 1 :(得分:1)
是的,有。最用户友好的方式是使用jQuery完成的。您必须收听下拉列表#page_template
中的更改。并在页面加载时运行相同的函数,如果template == something,则显示/隐藏元框。
脚本加载了wp_footer-$hook
或admin_print_scripts-$hook
。它已在以下Wordpress Answers中介绍: