$POST变量--我是否掌握了后端操作是如何解析的?

时间:2013-02-10 作者:Circuit Circus

我在寻找一种方法,将自定义元框附加到特定模板页面的编辑屏幕上。

我找到并尝试了这个here 从我的实际观点来看,这样做是行不通的。让我解释一下我为什么这么认为:为了确定我是否在使用特定模板的屏幕上,我需要引用global$帖子。但是,由于创建元框的函数连接到admin\\u init中,因此全局$post将不存在。

所以它必须发出错误信息,不是吗?在这些想法之后,我尝试将我的meta\\u box\\u init函数绑定到edit\\u post、save\\u post等等。但抄本上说,即使他们需要设置$post。那么,我该如何实现页面模板特定的元框呢?有没有干净的解决方案?

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

正如我已经写过的有问题的评论,在创建新帖子或页面的一开始,首先选择一个模板并另存为草稿。如果使用正确的模板,保存后会出现元框。

<?php
add_action( \'add_meta_boxes\', \'my_add_meta_box\' );
function my_add_meta_box() {
    // get template file name
    $template_basename = wp_basename( get_page_template() );
    // check if right template is used
    if(\'my-template.php\' == $template_basename) {
        add_meta_box(
            \'my_metabox\',
            __(\'Metabox name\'),
            \'my_display_metabox\',
            \'page\',
            \'normal\',
            \'high\'
        );
    }
}
function my_display_metabox($post) {
    wp_nonce_field( \'my_metabox\', \'my_metabox_noncename\' );
    // meta box HTML here
}

结束

相关推荐

为什么esc_url在SmartMetabox中不起作用

你试过吗http://www.wproots.com/ultimate-guide-to-meta-boxes-in-wordpress/ ? 创建metabox是一个很好的类。但我对验证有问题。我试过了sanitize_callback 参数来清理URL,所以我使用esc_url 但该字段仍然接受所有值。这里有什么问题?这是我的密码add_smart_meta_box( \'themename_slides_url\', array( \'title\' => _