为wordpress自定义字段脚本集成if-else循环


Integrate an if-else loop for a wordpress custom field script

我找了很多,但我没有找到正确的解决方案。

我有一个自定义字段,名为"My-Name"。这个自定义字段可以在帖子中添加(不止一次),也可以不添加。

$my_name = get_post_custom_values( 'My-Name' );
foreach ( $my_name as $my_name )
echo $my_name;

我的问题 -如果这个键在一个帖子中不可用,我得到一个错误(警告:为foreach()提供无效参数)。

我不想要这个错误消息,我想要一个"else = html text",如果这个键在这个帖子中不可用。我尝试了一些if/else,但我的php技能太低,无法成功。有人能帮帮我吗?


更新:
我已经从dingo_d修改脚本,现在它的工作-谢谢!

$my_name = get_post_custom_values( 'My-Name' );
if(is_array($my_name) && !empty($my_name)){
    foreach($my_name as $my_name){
    echo $my_name . "'n";
    }
} else{
    echo 'My text';
}
 $my_name = get_post_custom_values( 'My-Name' );
 if(isset($my_name))
  {
    foreach ( $my_name as $my_name ){
      echo $my_name;
    }
  }else{
   echo "html goes here";
  }

根据get_post_custom_values()在缺少POST参数时返回的内容,只需检查参数是否已设置或为空:

if (isset($my_name))
{
    foreach(...) ...
}

if (!empty($my_name))
{
    foreach(...) ...
}

顺便说一下:if-else结构不是循环;-)

在进入foreach循环之前,始终检查变量是否填充了某些内容。这也取决于你期望的回报类型。我会这样做:

if(is_array($my_name) && !empty($my_name)){
    foreach($my_name as $value){
        echo $value;
    }
} else{
    echo 'My text';
}
这是因为您的$my_name变量应该返回一个数组。如果你的返回值是字符串你应该检查它是否被设置,如果它不是一个空字符串
if(isset($my_variable) && $my_variable != ''){...}