我想在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\';
}
任何帮助都将不胜感激。谢谢
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\';
}