You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中多条件OR逻辑的IF语句无法正常工作

问题分析与解决方案

嘿,我来帮你搞定这个问题!你现在页面输出Game title: 1,核心问题出在赋值运算符和逻辑或的优先级,以及你想要的“选第一个有值的字段”和当前代码逻辑不匹配上。

为什么会输出1?

你原来的代码里:

if( $info = get_field('pcgame_name') || get_field('psppublisher') || get_field('ps3game_name') )

因为||的优先级比=高,这段代码实际执行的是:

$info = (get_field('pcgame_name') || get_field('psppublisher') || get_field('ps3game_name'));

也就是把三个字段的逻辑或结果(布尔值true)赋值给$info,而PHP中输出布尔值true的时候会自动转为字符串1,这就是你看到的结果。

正确的实现方式

你的需求是“三个字段里选第一个有值的输出”,给你两种靠谱的写法:

写法一:分步条件判断(兼容性好,适合所有PHP版本)

<strong>Game Title: </strong>
<?php
// 依次检查每个字段,第一个有值的就输出
if ($gameTitle = get_field('pcgame_name')) {
    echo $gameTitle;
} elseif ($gameTitle = get_field('psppublisher')) {
    echo $gameTitle;
} elseif ($gameTitle = get_field('ps3game_name')) {
    echo $gameTitle;
}
?>

写法二:用null合并运算符(PHP7+ 更简洁)

如果你的PHP版本是7.0及以上,可以用??运算符直接取第一个非null的字段值,代码更清爽:

<strong>Game Title: </strong>
<?php
echo get_field('pcgame_name') ?? get_field('psppublisher') ?? get_field('ps3game_name');
?>

这两种写法都能帮你实现“从三个字段里选第一个有值的输出”的需求,不会再出现输出1的问题啦~

内容的提问来源于stack exchange,提问作者niznet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:26:54