【问题标题】:Exclude a block if a field is selected?如果选择了字段,则排除块?
【发布时间】:2021-05-15 00:00:26
【问题描述】:

如果选择了一个字段,是否可以排除一个块?我正在使用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');

【问题讨论】:

    标签: wordpress advanced-custom-fields wordpress-gutenberg


    【解决方案1】:

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

    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 );
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2020-05-18
      • 1970-01-01
      • 2018-06-26
      • 2022-06-23
      相关资源
      最近更新 更多