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

时间:2015-10-01 09:25:19

标签: php wordpress

我经常搜索,但我没有找到正确的解决方案。

我有一个名为“我的名字”的客户字段。这个客户字段可以添加到帖子中(多一次)或不添加。

$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修改了脚本,现在它可以工作了 - thx!

$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';
}

3 个答案:

答案 0 :(得分:0)

取决于get_post_custom_values()将在缺少的POST参数上返回的内容,只需检查要设置的参数或为空:

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

VS

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

顺便说一句:if-else-construct不是循环; - )

答案 1 :(得分:0)

在进入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 != ''){...}

答案 2 :(得分:0)

 $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";
  }