如果选中 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' );
我有一个 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' );