我想在前端显示metabox repeater字段。
以下是设置metabox repeater字段的代码:
$my_meta = new AT_Meta_Box($config);
$repeater_fields[] = $my_meta->addText($prefix.\'t_field_id\',array(\'name\'=> \'Title\'),true);
$repeater_fields[] = $my_meta->addText($prefix.\'d_field_id\',array(\'name\'=> \'Description\'),true);
$repeater_fields[] = $my_meta->addText($prefix.\'p_field_id\',array(\'name\'=> \'Price\'),true);
$repeater_fields[] = $my_meta->addImage($prefix.\'i_field_id\',array(\'name\'=> \'Image\'),true);
$my_meta->addRepeaterBlock($prefix.\'re_\',array(\'inline\' => true, \'name\' => \'This is a Repeater Block\',\'fields\' => $repeater_fields));
$my_meta->Finish();
我尝试使用此代码:
$title = get_post_meta(get_the_ID(),\'mt_t_field_id\',true);
echo $title;
有什么建议吗?
最合适的回答,由SO网友:Bainternet 整理而成
很高兴看到有人使用我的类:)
无论如何,当您在中继器块中保存字段时,要访问数据,您需要使用中继器ID,在您的情况下,它是
$repeater_data = get_post_meta(get_the_ID(),$prefix.\'re_\',true);
这将返回一个数组,其中id为key,value为value,因此可以像这样循环数组:
foreach($repeater_data as $arr){
echo \'title: \' . $arr[$prefix.\'t_field_id\'];
echo \'<br />Description: \' . $arr[$prefix.\'d_field_id\'];
echo \'<br />Price: \' . $arr[$prefix.\'p_field_id\'];
echo \'<br />image: <img src="\' . $arr[$prefix.\'i_field_id\'][\'url\']">\';
}
要更好地了解图像字段的存储方式,请查看
class\'s wiki
或上的评论
this post