如果选中 ACF 子字段,则隐藏行

Hide row if ACF sub field is checked

我有一个 ACF Reaper 字段,其中有几行我想显示。但是,如果选中了复选框,我只想要显示行(复选框是转发器中的子字段)。我正在尝试通过使用 if in_array 来实现这一点,如“条件逻辑”下 ACF documentation 中所述:

if( in_array( "bestyrelsevalg", get_sub_field( 'bestyrelse' ) ) )

我正在用 WordPress 简码输出结果。现在,我的代码还算可以,除了它显示转发器字段中的所有结果(还有那些未选中的结果)。我错过了什么??

我的代码:

function investor_bestyrelse_shortcode() {
$rows = get_field('budgetter_og_nyhedsbreve');

if( $rows  ) {
    echo '<ul class="slides">';
    foreach( $rows as $row ) {
if( in_array( "bestyrelsevalg", get_sub_field( 'bestyrelse' ) ) ) {
        $image = $row['upload_dokument'];
        echo '<li>';
            echo get_field( 'upload_dokument' );
        echo '</li>';
        }
    }
    echo '</ul>';
}   

}

add_shortcode( 'investor_bestyrelse', 'investor_bestyrelse_shortcode' );

您不能在 foreach 循环中使用 get_sub_field(),您需要使用 have_rows-while-loop 或从关联数组访问它:

function investor_bestyrelse_shortcode() {
    $rows = get_field('budgetter_og_nyhedsbreve');
    if( $rows  ) {
        echo '<ul class="slides">';
            foreach( $rows as $row ) {
                if( in_array( "bestyrelsevalg", $row['bestyrelse'] ) ) {
                $image = $row['upload_dokument'];
                echo '<li>';
                echo $row['upload_dokument'];
                echo '</li>';
            }
        }
        echo '</ul>';
    }   
}
add_shortcode( 'investor_bestyrelse', 'investor_bestyrelse_shortcode' );

在@maggiathor 的回答的帮助下设法解决了问题。出于某种原因,回声引起了问题。我不得不使用 return insted:

function investor_bestyrelse_shortcode() {
            $rows = get_field('budgetter_og_nyhedsbreve');
    if( $rows  ) {
        $content = '<ul class="dokumenter">';
            foreach( $rows as $row ) {
            if( !in_array( "bestyrelsevalg", $row['bestyrelse'] ) ) {
                $pdf = $row['upload_dokument'];
                
                $content = $content . '<li>' . $pdf . '</li>';
            }
            }
        }
        $content = $content . '</ul>';
        return $content;
    }   
add_shortcode( 'investor_bestyrelse', 'investor_bestyrelse_shortcode' );