Metaboxes in Loop

时间:2017-09-19 作者:saurav.rox

我想在foreach循环中创建元盒。要求是,我有一个自定义帖子类型的数组,我想运行一个循环,为作为数组中键的帖子类型添加元盒。到目前为止,我已经开发了很多需求,但现在我被困在回调函数所在的部分add_meta_box() 将被调用。我用过call_user_func_array 调用回调函数并传递$key 作为参数,但它返回错误且不起作用。下面是我的代码:

function rttk_create_boxes(){
    $myarray = $this->rttk_get_posttype_array();
    foreach ($myarray as $key => $value) {
        // echo "key--".$key;
        // $arr[] = \'\';
        // $arr[] = $key;
        $key = (array)$key;
        add_meta_box(
            \'rttk_\'.end($key).\'_id\',
            __( \'Details\', \'rara-theme-toolkit-pro\' ),
            //array($this,\'rttk_testimonials_metabox_callback\',$key),
            call_user_func_array(array( $this, \'rttk_testimonials_metabox_callback\'),$key ),
            $key,
            \'side\',
            \'high\'
        );
    }
}

// testimonials template form
public function rttk_testimonials_metabox_callback($key){
        include RTTKPRO_BASE_PATH.\'/includes/meta-parts/rttk-\'.$key.\'-template.php\';
}
任何帮助都将不胜感激。谢谢

1 个回复
SO网友:windyjonas

您在类上下文中使用回调,但我看不到类声明。也许它被遗漏了,但这里有一个不使用类的可能解决方案。

function rttk_create_boxes() {
    $myarray = $this->rttk_get_posttype_array();
    foreach ( $myarray as $key => $value ) {
        add_meta_box(
            \'rttk_\' . $key . \'_id\',
            __( \'Details\', \'rara-theme-toolkit-pro\' ),
            \'rttk_testimonials_metabox_callback\',
            null,
            \'side\',
            \'high\',
            array( \'key\' => $key )
        );
    }
}

// testimonials template form
function rttk_testimonials_metabox_callback( $post, $args ) {
    $key = $args[\'args\'][\'key\'];
    include RTTKPRO_BASE_PATH . \'/includes/meta-parts/rttk-\' . $key . \'-template.php\';
}

结束

相关推荐

Metabox选择-前端显示

嗨,我买了一个主题,但我需要在前端提交表单中添加一些字段。我添加了元盒,它们正在工作,但问题是元盒的选择类型。我克隆了一个select表单组,该组从post分类中获取数据,但我不知道如何调整它,使其从“items”数组中“抓取”数据。这是我的代谢箱:array( \'type\' => \'select\', \'name\' => \'resume_change_location\', \'label\' => __( \'Are y