在前端显示metabox(my-metabox类)

时间:2012-04-02 作者:wordpress nooby

我想在前端显示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;
有什么建议吗?

1 个回复
最合适的回答,由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

结束

相关推荐

如果帖子已保存,则条件显示Metabox

我需要在我的WordPress自定义帖子中注册一个metabox,但前提是帖子永久保存在数据库中。我的意思是,当用户单击“添加新内容”时,我不想显示metabox。当用户在页面刷新后单击“发布”时,将显示metabox。帖子状态无关紧要(已发布、私有或其他)有什么想法吗?