You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress 6.3.x FSE下Query Loop的No Results块显示异常求助

问题描述

我使用启用了全站点编辑(Full Site Editing,FSE)的WordPress 6.3.x版本,Query Loop块中包含No Results块,但存在一个问题:当查询仅返回1篇文章时,该文章和No Results块会同时显示。

我在Gutenberg仓库找到了对应的问题及修复方案,但由于该块没有可用钩子,不知道如何将修复应用到代码中。请问有没有不修改核心文件的正确修复方法?是否有遗漏的可用钩子?或者该如何应用补丁?注:我未安装Gutenberg插件,使用的是WordPress 6版本起集成的原生FSE功能。


解决方案

方法1:通过render_block钩子修正渲染逻辑

可以利用WordPress的render_block钩子拦截Query Loop块的输出,手动控制No Results块的显示:

add_filter( 'render_block', function( $block_content, $block ) {
    // 仅处理核心Query Loop块
    if ( 'core/query' !== $block['blockName'] ) {
        return $block_content;
    }

    // 获取当前查询的文章数量
    $query_args = isset( $block['context']['query'] ) ? $block['context']['query'] : [];
    $posts = get_posts( $query_args );
    $post_count = count( $posts );

    // 若查询有结果,移除No Results块的HTML
    if ( $post_count > 0 ) {
        // 正则匹配No Results块的结构(可根据实际输出调整)
        $block_content = preg_replace( '/<div class="wp-block-no-results[^>]*>.*?<\/div>/s', '', $block_content );
    }

    return $block_content;
}, 10, 2 );

将这段代码添加到主题的functions.php文件,或使用自定义代码插件(如Code Snippets)即可生效。注意:如果你的No Results块HTML结构与示例不同,需要调整正则表达式以匹配实际输出。

方法2:修改主题的块模板文件

如果熟悉FSE模板编辑,可以直接在主题的自定义模板中添加判断逻辑:

  1. 找到主题templates或parts目录下包含Query Loop的模板文件(如archive.html、自定义查询模板)。
  2. 在No Results块的位置添加条件判断,仅当查询无结果时才渲染该块:
<!-- wp:query -->
<div class="wp-block-query">
    <!-- wp:query-loop -->
    <div class="wp-block-query-loop">
        <!-- wp:post-template -->
        <!-- 你的文章模板内容 -->
        <!-- /wp:post-template -->

        <!-- wp:no-results -->
        <?php if ( $GLOBALS['wp_query']->post_count === 0 ) : ?>
            <div class="wp-block-no-results">
                <!-- No Results块的内容 -->
                <p>没有找到相关内容</p>
            </div>
        <?php endif; ?>
        <!-- /wp:no-results -->
    </div>
    <!-- /wp:query-loop -->
</div>
<!-- /wp:query -->

修改后保存模板文件,确保符合FSE的语法规范即可。

方法3:等待官方版本更新

该问题已在Gutenberg的修复PR中解决,后续WordPress正式版本(如6.4及以上)会集成此修复。若能接受等待,保持WordPress版本更新即可自动解决问题。


内容的提问来源于stack exchange,提问作者Kyrylo Romantsov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:43:16