【问题标题】:Wordpress - Show metabox on a specific page onlyWordpress - 仅在特定页面上显示元框
【发布时间】:2016-11-12 03:19:24
【问题描述】:

开发一个 wordpress 插件,我通过 index.php 文件创建一个页面,该页面还使用了一个自定义模板,该模板要求用户在元框中编辑信息。

我之前在插件中添加过元框,但从未遇到过这种情况 - 如何指定元框只显示在这一页上?

愿意接受所有建议 - 我相信这很简单!

谢谢, 艾伦

【问题讨论】:

    标签: php wordpress plugins


    【解决方案1】:

    将此添加到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,模板名称。

    【讨论】:

    • 条件验证适用于 metabox 插件,只需将 add_filter('rwmb_meta_boxes', 'function'); 放入条件 (if) 内即可
    • 你也可以在functions.php中做到这一点$title_search = get_the_title($post_id);并通过标题进行验证,你不会担心改变$post_id的数字(如果你必须迁移或者用户删除页面并重新创建)
    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多