如何仅在指定WordPress页面模板显示Meta Box?
解决Meta Box仅在指定页面模板显示的问题
步骤1:确认页面模板的有效性
首先要保证你的content-mainPage.php文件能被WordPress识别为自定义页面模板,需在文件顶部添加标准注释:
<?php /* Template Name: 主页面模板 */ // 模板其余代码... ?>
添加后,在编辑页面时就能在「页面属性」面板里看到这个模板选项。
步骤2:修正Meta Box的显示条件
原代码的include参数写法可能存在匹配问题,改用回调函数的方式更可靠,直接通过WordPress核心函数判断当前页面使用的模板:
修改后的完整代码:
add_filter('rwmb_meta_boxes', 'main_page_register_meta_boxes' ); function main_page_register_meta_boxes( $meta_boxes ) { $prefix = ''; remove_post_type_support('page', 'editor'); $meta_boxes[] = [ 'title' => esc_html__( 'Header', 'Header' ), 'id' => 'Header_section_1', 'post_types' => ['page'], 'context' => 'normal', // 用回调函数精准判断模板 'include' => function( $post ) { // 对比当前页面的模板文件名 return get_page_template_slug( $post->ID ) === 'content-mainPage.php'; }, 'fields' => [ [ 'type' => 'text', 'name' => esc_html__( 'title', 'title' ), 'id' => $prefix . 'title', ], [ 'type' => 'wysiwyg', 'name' => esc_html__( 'Description', 'Description' ), 'id' => $prefix . 'Description', ], ], ]; return $meta_boxes; }
额外检查项
- 确认模板文件名完全匹配:注意Linux服务器区分文件名大小写,确保代码里的文件名和实际文件一致
- 测试前,先给目标页面选中该自定义模板,再进入编辑页面查看Meta Box是否正常显示
内容的提问来源于stack exchange,提问作者BobDev
相关产品推荐
相关产品推荐

