Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为wordpress自定义字段脚本集成if-else循环_Php_Wordpress - Fatal编程技术网

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

Php 为wordpress自定义字段脚本集成if-else循环,php,wordpress,Php,Wordpress,我搜索了很多,但没有找到正确的解决方案 我有一个自定义字段,名为“我的名字”。此自定义字段可以在帖子中添加(多次),也可以不添加 我的问题-如果此键在post中不可用,我将收到一个错误(警告:为foreach()提供的参数无效) 我不想要这个错误消息,我想要一个“else=html文本”,如果这个键在这篇文章中不可用。我尝试了一些if/else,但我的php技能太低,不可能成功。有人能帮我吗 更新: 我已经修改了来自dingo_d的脚本,现在它可以工作了-thx $my_name = get_

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

我有一个自定义字段,名为“我的名字”。此自定义字段可以在帖子中添加(多次),也可以不添加

我的问题-如果此键在post中不可用,我将收到一个错误(警告:为foreach()提供的参数无效)

我不想要这个错误消息,我想要一个“else=html文本”,如果这个键在这篇文章中不可用。我尝试了一些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';
}

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

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


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

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

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


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

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

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

if(isset($my_variable) && $my_variable != ''){...}

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

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

if(isset($my_variable) && $my_variable != ''){...}


为什么数组表达式与值相同?通过将
foreach
包装在一个检查它的表达式中,可以确保保存数组的
$my_name
变量存在:
如果(is_array($my_name)&&&&!empty($my_name)){foreach($my_name as$value){echo$value;}
@dingo\d有趣,我尝试一下。。。稍等一下。@Pepe似乎在我回答问题时没有注意到,所以我删除了它,因为让我的答案起作用只会使它与其他答案相同:)为什么数组表达式与值相同?通过将
foreach
包装在一个检查它的表达式中,可以确保保存数组的
$my_name
变量存在:
如果(is_array($my_name)&&&&!empty($my_name)){foreach($my_name as$value){echo$value;}
@dingo\d有趣,我尝试一下。。。等一下。@Pepe好像我在回答时没有注意到,所以我把它删除了,因为让我的答案起作用只会使它与其他答案一样:)我想这对wordpress的“自定义字段”不起作用?遗漏了“get_post_custom_values”之类的内容,对吗?遗漏是什么意思?您在变量
$my\u names
中拉取
get\u post\u custom\u values()
。Sry,我在我的评论后看到了您更新的脚本-我尝试了您的脚本,但我得到一个错误“致命错误:无法在写入上下文中使用函数返回值”我编辑了代码,不要尝试查看它是否已设置。这就是致命错误的原因。只需尝试第一个循环。调试代码的最佳方法是
print\r()
一路上的变量,以查看返回值。因此,首先尝试打印出
$my_name
变量的返回值。它应该是一个数组,所以如果它是数组并且不是空的,那么可以输入foreach。然后在foreach中,您可以打印出
$value
变量是什么。这是最安全的方式来看看你从中得到了什么。找到所需内容后,从代码中删除
print\r()
函数。你能更新你的问题以便我们能看到变量的内容吗?我想这对wordpress的“自定义字段”不起作用?遗漏了“get_post_custom_values”之类的内容,对吗?遗漏是什么意思?您在变量
$my\u names
中拉取
get\u post\u custom\u values()
。Sry,我在我的评论后看到了您更新的脚本-我尝试了您的脚本,但我得到一个错误“致命错误:无法在写入上下文中使用函数返回值”我编辑了代码,不要尝试查看它是否已设置。这就是致命错误的原因。只需尝试第一个循环。调试代码的最佳方法是
print\r()
一路上的变量,以查看返回值。因此,首先尝试打印出
$my_name
变量的返回值。它应该是一个数组,所以如果它是数组并且不是空的,那么可以输入foreach。然后在foreach中,您可以打印出
$value
变量是什么。这是最安全的方式来看看你从中得到了什么。找到所需内容后,从代码中删除
print\r()
函数。另外,您是否可以更新您的问题,以便我们可以看到该变量的内容?Thx支持-您的解决方案比我的更优雅,并且运行良好!Thx支持-您的解决方案比我的更优雅,工作正常!