元盒数据循环中的有条件回显<br/>

时间:2011-04-24 作者:laras126

我正在研究一个主题儿童主题,并使用WPAlchemy Meta Box Class 要创建一个“Artwork Info”元框,我想在每篇文章的末尾有条件地这样回应:

标题中尺寸附加信息

我的类实例定义如下functions.php:

$prefix = \'wpf_\';
$artinfo_mb = new WPAlchemy_MetaBox(array
(
    \'id\' => \'_custom_meta\', // underscore prefix hides fields from the custom fields area
    \'title\' => \'Artwork Info\',
    \'template\' => STYLESHEETPATH . \'/custom/artwork-meta.php\',
    \'context\' => \'normal\',
));
下面是每个字段的HTML示例,位于artwork_meta.php:

<label>Title</label> 
<p>
    <?php $mb->the_field(\'title\'); ?>
        <input type="text" style="width:99%" name="<?php $mb->the_name(); ?>" value="<?php $mb->the_value(); ?>"/> 
</p>
我正在中使用此函数functions.php 要通过字段数组打印每篇文章中的数据,请执行以下操作:

function display_artwork_info() {

    global $artinfo_mb; 
    $artinfo_mb->the_meta();
    $values = array(\'title\',\'medium\',\'dimen\',\'additional\'); 

    echo the_content();  

    // loop through and conditionally echo the value with a line break
    foreach ($values as $val) {
        if ($val != \'\'){
            $mb->the_value($val);
            echo \'<br />\';
        }
    } 
} 
add_action(\'thematic_post\', \'display_artwork_info\');
除了foreach ($values as $val) 始终回显换行符,即使字段的值不包含数据。例如,如果“medium”和“additional info”字段为空,则HTML会如下所示:

Title
<br />
<br />
Dimensions
<br />
我的循环有什么问题吗?我是否使用了错误的WPAlchemy函数来回显元数据?提前感谢:)

1 个回复
最合适的回答,由SO网友:Milo 整理而成

$val在这里永远不会==\'\',因为$val保存的是您的字段名,而不是数据。此外,使用get\\u返回\\u值,该值只会回显数据。

foreach ($values as $val) {
    if ($artinfo_mb->get_the_value($val) != \'\'){
        $artinfo_mb->the_value($val);
        echo \'<br />\';
    }
} 

结束

相关推荐

无法在自定义构建的Metabox中保存自定义分类术语

我大致遵循了tutorial here 关于如何创建“自定义分类输入面板”。我正在使用自定义帖子类型homes 还有一种自定义分类法beds (用于记录一所房子的床位数)。我已经在下拉菜单中显示了分类术语,但无法在保存帖子时保存它们。我开始只是发布旨在保存术语的代码,但意识到我应该发布创建和显示元盒的代码,以用于上下文。自定义帖子类型名称为“homes”,自定义分类名称为“beds”。分类法是分层的(我认为这并不重要,但我可能错了)。//adding metaboxes for the homes pos