Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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/0/azure/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
使用WordPress的PHP if/else get_field()_Php_Wordpress_If Statement_Advanced Custom Fields - Fatal编程技术网

使用WordPress的PHP if/else get_field()

使用WordPress的PHP if/else get_field(),php,wordpress,if-statement,advanced-custom-fields,Php,Wordpress,If Statement,Advanced Custom Fields,我试图在WP后端为客户提供一些选项,以自定义显示在其网站主页上的旋转木马。我使用高级自定义字段来处理从客户机获取输入。我想给他们两个选择: 选项#1)允许客户端插入要显示的文本字符串(“旋转木马标题文本”) 选项#2)允许客户端上载要显示的徽标(“旋转木马徽标”) 我希望代码检查标题文本,如果没有,则显示徽标。我还没有决定如果两个字段都为空会发生什么。不管怎样,以下是我的想法: <? if( get_field('carousel_title_text') ) { ?> <

我试图在WP后端为客户提供一些选项,以自定义显示在其网站主页上的旋转木马。我使用高级自定义字段来处理从客户机获取输入。我想给他们两个选择:

选项#1)允许客户端插入要显示的文本字符串(“旋转木马标题文本”)

选项#2)允许客户端上载要显示的徽标(“旋转木马徽标”)

我希望代码检查标题文本,如果没有,则显示徽标。我还没有决定如果两个字段都为空会发生什么。不管怎样,以下是我的想法:

<?
if( get_field('carousel_title_text') ) { ?>
  <h2 class="promo"><?php the_field('carousel_title_text');?></h2>
<? } elseif( get_field('carousel_logo') ) {
  the_field('carousel_logo');
}
?>

只要有输入,“carousel_title_text”就会显示,但如果为空且“carousel_logo”为空,则不会正确输出徽标。谁能告诉我我做错了什么,或者有没有更好的方法


提前感谢,

您已将else条件设置为last,如果客户端不输入文本,将显示默认文本。 您将使用下面的代码

<?php  
 if( get_field('carousel_title_text') ) { ?>
  <h2 class="promo"><?php the_field('carousel_title_text');?></h2>
<?php } elseif( get_field('carousel_logo') ) {
  the_field('carousel_logo');
}else {
  echo " <h2 class="promo"> Default slider title </h2>"
}?>

这是默认的标题客户机指示他没有输入滑块文本

希望对您有用。

试试:

<?php 
 $output = (get_field('carousel_title_text')) ? get_field('carousel_title_text'):get_field('carousel_logo');

 echo $output;
?>

如果我答对了,您的问题不在于
If/Else
语句,而在于logo字段。我假设您已将此字段(
carousel_logo
)正确配置为ACF中的图像

图像字段提供三种不同的返回值可能性:

注意:在某些版本的ACF中,可以找到图像对象而不是图像数组,但概念上是相同的

如果您只使用
_字段('carousel_logo'),它们都不会正确显示您的图像在您的模板中。那么,您是如何获得您的徽标的?

如果您想要最简单的解决方案,请选择图像URL作为徽标字段的返回值,并按如下方式打印:

<?
$title = get_field('carousel_title_text');
$logo = get_field('carousel_logo');

if (!empty($title)) : ?>
    <h2 class="promo"><?= $title ?></h2>
<?php elseif (!empty($logo)) : ?>
    <img class="logo" src="<?= $logo ?>">
<?php else: ?>
    <!-- No title, no logo -->
<?php endif ?>
其中,
'medium'
是用于输出它的标签


另外,请查看关于字段类型的官方文档,以了解更多示例和进一步解释。

这听起来好像与徽标的设置有关,我假设它是一个图像字段?在Wordpress管理员中,该字段下有一个名为“返回值”的设置,可以设置为“数组”或“URL”

如果设置为“Array”,则需要将该数组存储到变量,然后在标记中访问其属性,如下所示:

<?php

    if ( get_field('carousel_title_text') ) { ?>
        <h2 class="promo"><?php the_field('carousel_title_text'); ?></h2>
    <?php } else{
        $carousel_logo = get_field('carousel_logo');
        if ( $carousel_logo ) { ?>
            <img src="<?php echo $carousel_logo['url']; ?>" />
        <?php } else { ?>
            <h2 class="promo">Default slider title </h2>
        <?php }
    }

?>

" />
默认滑块标题
或者,您可以将字段设置为仅返回图像URL,然后按如下方式访问它:

<?php

    if ( get_field('carousel_title_text' ) { ?>
        <h2 class="promo"><?php the_field('carousel_title_text'); ?></h2>
    <?php } elseif ( $carousel_logo ) { ?>
        <img src="<?php the_field('carousel_logo'); ?>" />
    <?php } else { ?>
        <h2 class="promo">Default slider title </h2>
    <?php }

?>

不幸的是,这不起作用。这会产生一个几乎空白的屏幕。试试这个家伙。
$field=get\u field($field\u name,$post\u id,$format\u value);
评论不用于扩展讨论;此对话已被取消。
<img class="logo" src="<?= $logo['sizes']['medium'] ?>">
<?php

    if ( get_field('carousel_title_text') ) { ?>
        <h2 class="promo"><?php the_field('carousel_title_text'); ?></h2>
    <?php } else{
        $carousel_logo = get_field('carousel_logo');
        if ( $carousel_logo ) { ?>
            <img src="<?php echo $carousel_logo['url']; ?>" />
        <?php } else { ?>
            <h2 class="promo">Default slider title </h2>
        <?php }
    }

?>
<?php

    if ( get_field('carousel_title_text' ) { ?>
        <h2 class="promo"><?php the_field('carousel_title_text'); ?></h2>
    <?php } elseif ( $carousel_logo ) { ?>
        <img src="<?php the_field('carousel_logo'); ?>" />
    <?php } else { ?>
        <h2 class="promo">Default slider title </h2>
    <?php }

?>