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

WordPress自定义页面模板无法显示当前登录用户帖子问题排查

问题诊断与修复方案

我帮你排查了代码里的问题,主要有两个关键点导致页面始终显示特定用户的帖子,而非当前登录用户的内容:

  • WP_Query 参数嵌套错误
    你已经正确构建了$author_query参数数组,但在初始化$wpb_all_query时,错误地把这个数组又套了一层array()——也就是写成了new WP_Query(array($author_query))。WP_Query需要接收一维的参数数组,这种嵌套会让参数解析出现异常,最终可能默认使用了某个固定用户ID,或者因参数无效回退到了默认值。

  • 冗余且未使用的查询实例
    你创建了$author_posts这个WP_Query对象,但完全没有用到它,这属于冗余代码,虽然不直接引发问题,但会浪费不必要的服务器资源。

另外,我建议增加一个用户登录状态检查,避免未登录用户看到奇怪的提示。


修复后的完整代码

<?php
// 获取当前登录用户信息
global $current_user;
wp_get_current_user();

// 先检查用户是否已登录
if ( is_user_logged_in() ) {
    // 构建正确的查询参数
    $author_query = array(
        'posts_per_page' => -1, // 显示该用户所有帖子
        'author'         => $current_user->ID
    );
    
    // 初始化查询:注意不要嵌套数组!
    $wpb_all_query = new WP_Query($author_query);

    if ( $wpb_all_query->have_posts() ) : ?>
        <ul>
            <!-- 循环输出用户帖子 -->
            <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                        <span style="margin-left: 8px; color: #666;"><?php echo get_the_date(); ?></span>
                        <span style="margin-left: 8px; color: #666;"><?php echo the_author(); ?></span>
                    </a>
                </li>
            <?php endwhile; ?>
        </ul>
        <?php wp_reset_postdata(); // 重置查询状态,避免影响后续内容 ?>
    <?php else : ?>
        <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
    <?php endif;
} else {
    // 未登录时的友好提示
    echo '<p>' . __( 'Please log in to view your posts.' ) . '</p>';
}
?>

核心修复说明

  1. 移除了array($author_query)的嵌套写法,直接传递正确的一维参数数组给WP_Query
  2. 新增is_user_logged_in()检查,让代码逻辑更严谨,用户体验更好
  3. 删除了未使用的$author_posts变量,精简代码
  4. 给日期和作者信息加了简单的内联样式,让排版更清晰(你可以换成自定义CSS类)

修改后,页面就能准确显示当前登录用户的所有帖子了。

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:54:24