首先,这不是一个错误,而是一个警告:
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
}