微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果选择了字段,则排除块?

如何解决如果选择了字段,则排除块?

如果选择了字段,是否可以排除块?我正在使用 get_field('article_style' ) == 'major',如果它被选中,则块 acf/opby-cover-image 不会出现在我的主题中。我正在使用来自 Skip Certain Gutenberg Block in Loopadd_filter

如果该字段被选中,我下面的代码确实有效,但如果不是,则它不会显示其余的内容。关于如何在选择字段时不显示此块但在未选择字段时显示内容的任何想法?

function remove_blocks() {
  if ( is_single() && (get_field('article_style' ) == 'major') ) {
    $blocks = parse_blocks( get_the_content() );
    foreach ( $blocks as $block ) {
        if ( 'acf/opby-cover-image' === $block['blockName'] ) {
            continue;
        } else {
            echo render_block( $block );
        }
    }
  }
}
add_filter( 'the_content','remove_blocks');

解决方法

条件检查是否可能在循环中而不是之前?

if ( is_single() ) {
    $blocks = parse_blocks( get_the_content() );
    foreach ( $blocks as $block ) {
        if ( 'acf/opby-cover-image' === $block['blockName'] && (get_field('article_style' ) == 'major') {
            continue;
        } else {
            echo render_block( $block );
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。