【问题标题】:Wordpress PHP If Else On Li ItemWordpress PHP If Else On Li Item
【发布时间】:2023-02-01 00:38:14
【问题描述】:
<?php 
if ($a > $b):
    echo <li>Released: <?php the_field('date_released'); ?></li>
    echo <li>title: <?php the_field('title'); ?></li>
    echo <li>age: <?php the_field('age'); ?></li>
else if ($a == $b): 
    echo "Nothing";
endif;

这是一个 wordpress 代码 php 我对此很陌生。我如何回显 acf 字段?如果设置了数据,则显示它。如果没有数据然后隐藏文本?

请帮忙

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    您想使用 get_field() 而不是 the_field()get_field回报值,the_field()回声数据,所以你想使用 get_field() 先检查数据是否存在。

    在此示例中,我将字段设置为变量,然后使用 ternary operator 检查是否有值,回显该值,如果没有,则不回显。

    编辑

    这将删除 $a$b 变量:

    <?php
    $data_released = get_field( 'date_released' );
    $title         = get_field( 'title' );
    $age           = get_field( 'age' );
    
    // if the variable has a value, echo the <li>, if not, echo nothing.
    echo $data_released ? '<li>Released:' . $data_released . '</li>' : '';
    echo $title ? '<li>Title:' . $title . '</li>' : '';
    echo $age ? '<li>Age:' . $age . '</li>' : '';
    
    <?php
    $data_released = get_field( 'date_released' );
    $title         = get_field( 'title' );
    $age           = get_field( 'age' );
    
    if ( $a > $b ) :
        // if the variable has a value, echo the <li>, if not, echo nothing.
        echo $data_released ? '<li>Released:' . $data_released . '</li>' : '';
        echo $title ? '<li>Title:' . $title . '</li>' : '';
        echo $age ? '<li>Age:' . $age . '</li>' : '';
    elseif ( $a === $b ):
        echo 'Nothing';
    endif;
    
    更详细的答案

    这做同样的事情,但使用显式 if 语句。

    <?php
    $data_released = get_field( 'date_released' );
    $title         = get_field( 'title' );
    $age           = get_field( 'age' );
    
    if ( $a > $b ) :
        // If the variable does not equal an empty string
        if ( $data_released !== '' ) :
            echo '<li>Released:' . $data_released . '</li>';
        endif;
        if ( $title !== '' ) :
            echo '<li>Title:' . $title . '</li>';
        endif;
        if ( $age !== '' ) :
            echo '<li>Age:' . $age . '</li>';
        endif;
    elseif ( $a === $b ):
        echo 'Nothing';
    endif;
    

    【讨论】:

    • 你好。感谢您的回答,我在第 26 行收到警告错误:未定义变量 $a,这一行“if ($a > $b) :”
    • 我在变量上出错
    • 这些是你的变量你的代码。我假设你在其他地方定义了它们——因为你询问了 ACF。如果没有,我们需要查看更多您的代码。我不知道 $a$b 指的是什么。
    • 这是随机的。对不起。我不擅长我从互联网上复制的那个。也许您可以删除代码中的那些变量,以便我可以正常工作。我不确定这个变量。
    • 如果我删除那些,代码可能仍然无法按预期工作,但你可以试一试
    猜你喜欢
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多