需要获得以特定自定义帖子类型(CTP)发布的最后5位用户。由于我似乎无法找到WordPress函数来执行此操作,因此我尝试编写自定义查询。
到目前为止,我已经得到了这个以获得最后五个和他们的帖子数量(仅适用于my_custom_type)但它还没有工作。
这是我的疑问:
SELECT *, count(ID)
FROM wp_posts
WHERE post_type = 'my_custom_type'
GROUP BY post_author
ORDER BY post_author DESC LIMIT 5
我想跳过管理员( post_author = 1 )。
我怎样才能做到这一点?
感谢。
答案 0 :(得分:1)
您需要ID
以外的post_date
或post_author
排除管理员post_author>1
以外的订单:
SELECT *
FROM `wp_posts`
WHERE `post_author` != 1
AND `post_status` = 'publish'
AND `post_type` = 'my_custom_type'
GROUP BY `post_author`
ORDER BY `ID` DESC, `post_author` ASC LIMIT 5
<强>更新强>
您现在将获得最近5位作者列表,这些作者按升序日期(ASC'ID')排序,其中包含“已发布”帖子(自定义帖子类型='my_custom_type'),不包括管理员(用户ID = 1)。最后是每个作者的总帖数。
以下是查询:
select t1.*, t2.author_count
from `wp_posts` t1
inner join (
select max(`ID`) as `ID`, `post_author`, count(1) as author_count
from `wp_posts`
where `post_author` != '1'
and `post_status` = 'publish'
and `post_type` = 'my_custom_type'
group by `post_author`
) t2 on t1.`ID` = t2.`ID` and t1.`post_author` = t2.`post_author`
order by t1.`ID` desc limit 5
author_count
是生成的列,总计'published'
个帖子,每个选定作者都有一个'post_type' = 'my_custom_type'
。
基于this answer。