【发布时间】:2016-11-12 03:19:24
【问题描述】:
开发一个 wordpress 插件,我通过 index.php 文件创建一个页面,该页面还使用了一个自定义模板,该模板要求用户在元框中编辑信息。
我之前在插件中添加过元框,但从未遇到过这种情况 - 如何指定元框只显示在这一页上?
愿意接受所有建议 - 我相信这很简单!
谢谢, 艾伦
【问题讨论】:
开发一个 wordpress 插件,我通过 index.php 文件创建一个页面,该页面还使用了一个自定义模板,该模板要求用户在元框中编辑信息。
我之前在插件中添加过元框,但从未遇到过这种情况 - 如何指定元框只显示在这一页上?
愿意接受所有建议 - 我相信这很简单!
谢谢, 艾伦
【问题讨论】:
将此添加到functions.php
add_action('admin_init','my_meta_init');
function my_meta_init()
{
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
// checks for post/page ID
if ($post_id == '84')
{
add_meta_box('my_all_meta_1', 'My Custom Meta Box 1', 'my_meta_setup_1', 'page', 'normal', 'high');
}
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
// check for a template type
if ($template_file == 'home.php')
{
add_meta_box('my_meta_2', 'My Custom Meta Box 2', 'my_meta_setup_2', 'page', 'normal', 'high');
}
它检查编辑的页面是否有正确的 id 或使用模板。选择一个并更改id,模板名称。
【讨论】:
add_filter('rwmb_meta_boxes', 'function'); 放入条件 (if) 内即可
$title_search = get_the_title($post_id);并通过标题进行验证,你不会担心改变$post_id的数字(如果你必须迁移或者用户删除页面并重新创建)