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

WordPress开发:如何在single.php中添加用户未评论文章的条件判断代码

这个链接的内容完全能帮你解决问题!

嘿,不用纠结那个链接啦,我把里面的核心逻辑拆解成你能直接用的内容——它的思路正好匹配你的需求:判断「非文章作者的当前用户是否未对文章发表过评论」,然后执行指定操作。

具体实现步骤(大白话版)

  1. 先拿到当前登录用户的ID、当前文章的ID,还有文章作者的ID
  2. 确认用户是登录状态(如果没登录,自然没评论过,你可以按需调整这个判断)
  3. 先排除文章作者,再检查这个用户有没有给当前文章留过评论
  4. 满足「非作者+未评论」的条件时,就执行你要的操作

直接可用的代码片段

把这段代码放到single.php里你需要触发操作的位置就行:

// 获取当前登录用户的ID
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;

// 获取当前文章的ID和作者ID
$post_id = get_the_ID();
$post_author_id = get_post_field('post_author', $post_id);

// 核心条件判断:用户已登录 + 不是文章作者 + 没发表过评论
if (is_user_logged_in() && $current_user_id != $post_author_id) {
    // 查询该用户在当前文章下的评论数量
    $user_comment_count = get_comments(array(
        'user_id' => $current_user_id,
        'post_id' => $post_id,
        'count' => true, // 只返回数字,不用遍历评论列表
        'status' => 'approve' // 只统计已通过的评论,要包含待审核的就改成'hold'
    ));

    // 没评论过就执行你的操作
    if ($user_comment_count == 0) {
        // do something 这里替换成你要执行的代码
        // 举个例子:显示提示语
        echo '<p>快来分享你的看法吧!</p>';
    }
}

简单解释下代码

  • wp_get_current_user():获取当前登录用户的信息
  • get_the_ID():拿到当前打开的文章ID
  • get_post_field('post_author', $post_id):获取这篇文章作者的ID,用来排除作者本身
  • get_comments():专门查指定用户在指定文章下的评论数量,用count: true直接得到数字,省得绕弯子
  • 最后$user_comment_count == 0就是确认用户没留过评论的判断条件

这个逻辑和你提到的讨论里的思路完全一致,放心用就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:21:06