如何解决如果选中了ACF子字段,则隐藏行
我有一个ACF Reaper字段,其中有几行要显示。但是,我只想要显示行,如果它已选中一个复选框(复选框是转发器中的子字段)。我正在尝试通过使用ACF documentation中“条件逻辑”下的if in_array来实现这一目标:
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' );
解决方法
在@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' );
,
您不能在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' );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。