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

WordPress多语言站点文章循环仅英文页显示法语页不显示求助

你遇到的是WordPress多语言站点的典型查询过滤问题,按以下步骤排查即可解决:

排查方案

  • 确认法语语言下有已发布的公开文章
    目前绝大多数多语言插件(WPML/Polylang/TranslatePress等)默认会给WP_Query增加语言过滤规则,仅拉取当前页面对应语言的内容。你需要先进入WordPress后台「文章」管理页,切换到法语语言视图,确认至少有2篇状态为「已发布」的公开法语文章。如果只有英文文章没有对应法语翻译,查询自然返回空结果,就会显示你说的带Blog字样的空白框。
  • 显式指定查询的语言参数
    如果你需要强制拉取对应语言的文章,或者不需要按语言过滤,可以给WP_Query增加参数覆盖插件的默认规则,参考修改后的代码:
    <?php
    // 如果使用Polylang,可用pll_current_language()获取当前页面语言
    $current_lang = function_exists('pll_current_language') ? pll_current_language() : '';
    $loop = new WP_Query( array(
        'post_type'      => 'post',
        'posts_per_page' => 2,
        'order'          => 'ASC',
        'lang'           => $current_lang, // Polylang参数,指定查询语言
        // 如果是WPML,可使用ICL_LANGUAGE_CODE常量指定语言
        // 'lang' => defined('ICL_LANGUAGE_CODE') ? ICL_LANGUAGE_CODE : 'en',
    ) );
    if ( $loop->have_posts() ) :
        while ( $loop->have_posts() ) : $loop->the_post();
            ?>
                            <span><?php the_time( 'jS F, Y' ); ?></span>
                            <h6><?php the_title(); ?></h6>
                            <p><?php the_excerpt(); ?></p>
                            <a href='<?php the_permalink(); ?>' class='learn-btn'>Learn More <img src='<?php echo get_template_directory_uri(); ?>/images/a2.png' alt=''></a>
        <?php endwhile; endif;
        wp_reset_postdata(); ?>
    
  • 检查多语言插件的配置
    确认插件后台没有开启「隐藏未翻译内容」的开关,如果你不需要翻译文章只想把英文文章同步显示在法语页,可以在插件设置里关闭语言过滤,或者设置所有语言下都显示默认语言的内容。
  • 临时调试验证
    可以在法语页的查询代码后加一行var_dump($loop->posts);打印查询结果,确认是不是真的没有返回文章数据,排除前端样式隐藏内容的可能性。

内容的提问来源于stack exchange,提问作者Kyle White

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:24:03