未调用Add_meta_box回调

时间:2014-11-08 作者:Aidan Knight

上周我创建了第一个插件,可以自定义帖子类型。在这一过程中,我复制粘贴了我已有的代码,并将其修改为不同的帖子类型。然而,无论出于何种原因,我为add\\u meta\\u box设置的回调没有被调用。有谁能告诉我为什么会这样,我已经反复查看了一遍,但都没有什么好运气。

/**
 * Adds a meta box to the post editing screen
/***************************************************************************/
function package_custom_meta()
{
    add_meta_box( \'package_meta\', __( \'Package Title\', \'package_textdomain\' ), \'package_meta_callback\', \'package\' , \'high\' );

    echo "package_custom_meta CALLED";
}

add_action( \'add_meta_boxes\', \'package_custom_meta\' );

/**
 * Outputs the content of the meta box
/***************************************************************************/
function package_meta_callback( $post )
{
    echo "package_meta_callback CALLED";

    wp_nonce_field( basename( __FILE__ ), \'package_nonce\' );
    $package_stored_meta = get_post_meta( $post->ID );
    ?>

    <p>
        <label for="meta-package-512mb" class="package-row-title"><?php _e( \'512MB RAM\', \'package_textdomain\' )?></label>
        <input type="text" name="meta-package-512mb" id="meta-package-512mb" value="<?php if ( isset ( $package_stored_meta[\'meta-package-512mb\'] ) ) echo $package_stored_meta[\'meta-package-512mb\'][0]; ?>" />
    </p>

    <p>
        <label for="meta-package-1gb" class="package-row-title"><?php _e( \'1GB RAM\', \'package_textdomain\' )?></label>
        <input type="text" name="meta-package-1gb" id="meta-package-1gb" value="<?php if ( isset ( $package_stored_meta[\'meta-package-1gb\'] ) ) echo $package_stored_meta[\'meta-package-1gb\'][0]; ?>" />
    </p>

    <?php
}

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

看起来我们都错过了这个错误,因为一开始我也没有看到。

在调用add\\u meta\\u框时,您跳过了上下文的参数,直接转到了优先级。“high”不是上下文参数的可用字符串,这显然会导致函数以静默方式失败。

为上下文添加字符串可以修复它:

add_meta_box( \'package_meta\', __( \'Package Title\', \'package_textdomain\' ), \'package_meta_callback\', \'package\', \'normal\', \'high\' );

SO网友:michalzuber

对于我来说,空字符串为screen 参数已工作

add_meta_box(
        \'tribe_events_event_details\',
        \'Post Events Calendar\',
        \'bw_events_chooser_box\',
        \'\', // screen
        \'normal\',
        \'high\'
    );

结束

相关推荐

Setting pages for posts

这是我的json rest api函数。调用时,它会返回24条帖子,但总数要多得多。如何分页响应,以便使用以下内容更改页面?page=2 添加到curl请求路由。public function posts(){ $args = array( \'posts_per_page\' => 24, \'offset\' => 0, \'meta_key\' => $met