我可以将此元框限制为特定页面吗?

时间:2011-09-23 作者:Dean Elliott

我正在使用此版本(http://www.deluxeblogtips.com/meta-box-script-for-wordpress/)元框脚本,但我想能够限制元框显示的编辑屏幕。

例如,如果我只想在“联系人”页面编辑屏幕中显示一个元框,是否可能?

$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

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

在您的add_meta_boxex 钩子回调函数,您将有一个add_meta_box() 呼叫使用来自$post 全球(我相当肯定它在edit.php). 例如,您可以使用页面ID或slug。

页面ID:

global $post;
if ( \'123\' == $post->ID ) {
    // Page has ID of 123, add meta box
    add_meta_box( $args );
}
页面段塞:

global $post;
$slug = basename( get_permalink( $post->ID ) );
if ( \'contact\' == $slug ) {
    // Page has ID of 123, add meta box
    add_meta_box( $args );
}
注意:您也可以针对编辑。php页面,使用$pagenow 全球,例如:

global $pagenow, $page;
if ( \'edit.php\' = $pagenow && \'123\' == $post->ID ) {
    add_meta_box( $args );
}
然而,仅针对适当的add_meta_boxes 挂接您的回拨。例如,您的add_action() 呼叫可能如下所示:

add_action( \'add_meta_boxes\', \'callback_function_name\' );
但是,您可以使用add_meta_boxes_{post_type} 挂钩,特别是目标页面:

add_action( \'add_meta_boxes_page\', \'callback_function_name\' );
这样,回调只能在页面post类型上下文中调用。

SO网友:Chris Kluis

看,我倾向于认为与开发人员有点不同。我会制作一个自定义模板,并将其与该模板关联。这样它就存在了,如果要将其添加到另一个页面,请使用新的自定义模板。

我眼前没有代码。

结束

相关推荐

是否在自定义帖子类型的“主页”屏幕中包含Metabox?如果不是,那么仪表板页面?

我有一个简单的YouTube嵌入页面。我希望客户端能够轻松地从仪表板切换视频id,而无需编辑任何模板。类似这样:<iframe width=\"576\" height=\"324\" src=\"http://www.youtube.com/embed/<?=$video_id ?>\"></iframe>因此,我试图在各自自定义帖子类型的主页中插入一个元框(见下文),但不确定如何进行。这样的事情可能吗?如果没有,是否有办法将元盒插入WordPress仪表板的“主页”