当您通过添加操作时add_action()
, 回调函数中可用的变量由您使用的特定挂钩决定。这个load-post.php
钩子不会将任何值传递给回调函数。
然而,当添加元框时,要使用的正确挂钩是add_meta_boxes
, 这个钩子为回调函数提供了2个值$post_type
和$post
.
因此,如果你想根据帖子的页面模板有条件地添加一个元框,你可以使用$post
变量为get_page_template_slug()
:
add_action( \'add_meta_boxes\', \'prefix_post_metabox_setup\', 10, 2 ); // The 2 here is required to get both arguments.
function prefix_post_metabox_setup( $post_type, $post ) {
if ( \'my-template.php\' == get_page_template_slug( $post ) ) {
add_meta_box(); // etc.
}
}
请注意,这意味着在使用新模板保存页面/帖子之前,您的元框不会出现。在块编辑器(née Gutenberg)中,这可能需要手动刷新。
此外,最好的做法是在函数前面加上项目特有的前缀。post_metabox_setup
名称太通用。