自定义页面模板的自定义元数据

时间:2016-07-09 作者:Dawid Adach

我已经创建了自定义页面模板。现在,我必须使其可配置,然而,由于我在主题中使用了多个模板,我希望确保只有当用户选择此模板作为页面时,配置才可用。是否有这样做的选择?

add_meta_box 接受不同的$post_type, 因此,我能得到的最接近的方法是将metabox添加到所有页面,这是我想要避免的。

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

<?
// Check:
// 1. If you are editing post, CPT, or page
// 2. If post type IS NOT SET
if( \'post.php\' == basename($_SERVER[\'REQUEST_URI\'], \'?\' . $_SERVER[\'QUERY_STRING\']) && !isset($_GET[\'post_type\']) ) {

    // get post ID
    $postid = $_GET[\'post\']; 

    // check the template file name
    if (\'my_template.php\' == get_page_template_slug($postid) ) {
        // add your metabox here
        add_action( \'add_meta_boxes\', \'my_metabox\' );
    }

}
我不记得为什么我要检查帖子类型,而不是帖子ID,但你可以更改

!isset($_GET[\'post_type\'])
要检查是否设置了post ID,请执行以下操作:

isset($_GET[\'post\'])
Note: 只有使用适当的模板保存帖子(页面)后,元框才可用。

SO网友:tillinberlin

仅当用户选择此模板时可用”“?我不确定(我怀疑)这是否可能。相反,我建议以下两种选择之一:

如果您想在每页的基础上配置页面模板,那么元框可能是正确的方向。例如,您可以添加“使用特色图像作为背景”等选项…

但是,如果您想在更一般的基础上配置页面模板,可以使用主题选项。以下是法典中的介绍:https://codex.wordpress.org/Creating_Options_Pages

相关推荐

如何在WordPress开发中添加带有ACF自定义字段ID的自定义metabox字段

我是wordpress开发的新手,我在我的项目中安装了高级自定义字段插件,并创建了两个文本字段名称&;我还创建了一个插件,可以在帖子中创建一个带有文本框的元框。现在在帖子中,我将获得自定义字段名称(&A);电子邮件和我的自定义元框旁边将出现,但我必须将我的元框附加到名称字段旁边,即在名称字段和电子邮件字段之间。我的metabox代码如下。请任何人帮帮我//Creating the custom meta box function my_notice_meta_box() {