Custom field php

时间:2014-07-20 作者:user31445

嗨,我把这个php代码放在我的一篇文章php上

<?php
$custom_fields = get_post_meta($post_id); 
$my_custom_field = $custom_fields[\'_source_link\']; //key name
foreach ( $my_custom_field as $key => $value )
    echo $key . " => <a href=\'" . $value . "\'>Click Here</a><br />";
?>
但是我有个错误

警告:为foreach()提供的参数无效

如何修复此错误?

1 个回复
SO网友:Tom J Nowell

首先,这不是一个错误,而是一个警告:

Warning: 为foreach()提供的参数无效

它显示为错误,因为您的PHP是这样配置的。有关详细信息,请研究错误日志记录级别。

至于发生的原因:

$my_custom_field = $custom_fields[\'_source_link\']; //key name
foreach ( $my_custom_field as $key => $value )
    echo $key . " => <a href=\'" . $value . "\'>Click Here</a><br />";
如果没有_source_link 元字段?或者如果字段包含空数组?与此相同:

$my_custom_field = false
foreach ( $my_custom_field as $key => $value )
    echo $key . " => <a href=\'" . $value . "\'>Click Here</a><br />";
其浓缩为:

foreach ( false as $key => $value )
    echo $key . " => <a href=\'" . $value . "\'>Click Here</a><br />";
这毫无意义,PHP知道这一点并输出警告。

因此,不要假设数据是有效的,要事先检查。empty 这是一个很好的方法。我会这样做:

$my_custom_field = get_post_meta($post_id, \'_source_link\', true );
if ( !empty( $my_custom_field ) {
    foreach ( $my_custom_field as $key => $value ) {
        // display the value
    }
} else {
    // there are no values
}

结束

相关推荐