从WordPress SQL查询中排除Pingback

时间:2016-12-31 作者:Marc

有人知道如何从这个查询中排除pingback吗?我试图添加AND post_type = \'comment\' 之后AND post_password = \'\' 但这不起作用。

$query = "select
           wp_posts.*,
           coalesce((
           select
              max(comment_date)
           from
              $wpdb->comments wpc
           where
              wpc.comment_post_id = wp_posts.id
              AND comment_approved = 1
              AND post_password = \'\'
          ),
           wp_posts.post_date  ) as mcomment_date
        from
           $wpdb->posts wp_posts
        where
           post_type = \'post\'
           and post_status = \'publish\'
           and comment_count > \'0\'
        order by
   mcomment_date desc  limit $limit";
新年快乐!即使您可能不知道答案;-)

2 个回复
最合适的回答,由SO网友:Tunji 整理而成

您可以通过排除pingbackcomment_type wordpress列comments table

$query = "select
           wp_posts.*,
           coalesce((
           select
              max(comment_date)
           from
              $wpdb->comments wpc
           where
              wpc.comment_post_id = wp_posts.id
              AND comment_approved = 1
              AND post_password = \'\'
              AND comment_type NOT IN ( \'pingback\' )
          ),
           wp_posts.post_date  ) as mcomment_date
        from
           $wpdb->posts wp_posts
        where
           post_type = \'post\'
           and post_status = \'publish\'
           and comment_count > \'0\'
        order by
   mcomment_date desc  limit $limit";

SO网友:iguanarama

这个wp_comments table 有一个字段“comment\\u type”,表示pingback等。因此,虽然我的SQL知识不是很好,但我认为您只需要在查询中添加一行,从comments表中进行选择:

[...]
where
    wpc.comment_post_id = wp_posts.id
    AND wpc.comment_type != \'pingback\'
    [...]

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the