我搜索了很多,除了编写更大的代码之外找不到任何解决方案。 我需要的是,只有在设置了两个$ btn_字符串中的一个时输出。
当前状态如果$btn_orange = get_field('btn_orange')
equeals为true,
<{1}}返回一个好的值时,( $btn_black = get_field('btn_black')
未被处理。
简而言之:如果get_field('btn_black')
为$btn_black
,则$btn_orange
未设置。
这是我目前的代码:
<?php if( ( $btn_orange = get_field('btn_orange') ) || ( $btn_black = get_field('btn_black') ) ): ?>
<div class="buttons">
<?php if($btn_orange && ( $btn_orange_url = get_field('btn_orange_url') ) ): ?>
<a class="btn btn-lg btn-primary" href="<?php echo $btn_orange_url; ?>"><?php echo $btn_orange; ?></a>
<?php elseif($btn_orange): ?>
<span class="btn btn-lg btn-primary"><?php echo $btn_orange; ?></span>
<?php endif;?>
<?php if($btn_black && ( $btn_black_url = get_field('btn_black_url') ) ): ?>
<a class="btn btn-lg btn-black" href="<?php echo $btn_black_url; ?>"><?php echo $btn_black; ?></a>
<?php elseif($btn_black): ?>
<span class="btn btn-lg btn-black"><?php echo $btn_black; ?></span>
<?php endif;?>
</div>
<?php endif; ?>
现在我可以单独btn_orange
和$btn_black
分隔if块。
但如果两个或两个中的一个设置为<div class="buttons">
的值,我需要输出get_field()
。
我可以在第一个if语句中完成吗?
编辑:问题已解决。我不应该在$x = func($parameter)
语句中添加IF
之类的内容,而是首先填充字符串,如dougtesting.net所指出的那样。
答案 0 :(得分:1)
条件检查您必须使用==
代替=
if( ( $btn_orange == get_field('btn_orange') ) || ( $btn_black == get_field('btn_black')
答案 1 :(得分:1)
您使用single =来检查if语句而不是==
答案 2 :(得分:1)
在条件范围内分配值不是一个好主意。条件并不意味着这样做(这就是大多数其他编程语言明确禁止的原因)。
这样做:
<?php $btn_orange = get_field('btn_orange');
$btn_black = get_field('btn_black');
if ($btn_orange || $btn_black):
?>
如果没有可能的方法来满足它或不满足它,那么PHP(以及大多数其他编程语言)将放弃条件评估。不这样做会浪费计算时间和资源。
还要考虑以下代码:
if (isset($array["index"])) && $array["index"] == "something)
如果要评估两个条件,则此代码将中断,因为如果未设置索引,则访问它将引发错误。
答案 3 :(得分:1)
最佳解决方案是在IF语句之前填充变量,如...
$btn_orange = get_field('btn_orange');
$btn_black = get_field('btn_black');
if($btn_orange || $btn_black) {
etc...
}
然后两个变量都可以在if语句中使用。
答案 4 :(得分:0)
您可以在插入条件
之前通过赋值变量来尝试此操作<?php
$btn_orange = get_field('btn_orange');
$btn_black = get_field('btn_black');
if ($btn_orange || $btn_black):
?>
<div class="buttons">
<?php if (isset ($btn_orange) && ( $btn_orange_url = get_field('btn_orange_url') ) ): ?>
您还可以按var_dump();