php - WordPress:如何使用自定义查询获取不包含特定类别的帖子

标签 php mysql wordpress

我需要显示所有不包含特定类别的帖子。 我使用以下查询,但我还检索包含类别 81 的帖子,因为该帖子还包含其他类别。 有办法解决吗?

SELECT p1.*, wm2.meta_value 
FROM wp_posts p1 
LEFT JOIN wp_postmeta wm1 ON (
    wm1.post_id = p1.id
    AND wm1.meta_value IS NOT NULL
    AND wm1.meta_key = '_thumbnail_id'
)
LEFT JOIN
wp_postmeta wm2
ON (
    wm1.meta_value = wm2.post_id
    AND wm2.meta_key = '_wp_attached_file'
    AND wm2.meta_value IS NOT NULL
)
LEFT JOIN
wp_term_relationships wtr
ON (
    object_id=p1.id
)
WHERE
p1.post_status='publish'
AND p1.post_type='post'
AND `term_taxonomy_id`<>81
GROUP BY ID
ORDER BY p1.post_date DESC
LIMIT 0,10

谢谢!

最佳答案

这应该有效

SELECT p1.*, wm2.meta_value 
FROM wp_posts p1 
LEFT JOIN wp_postmeta wm1 ON (
    wm1.post_id = p1.id
    AND wm1.meta_value IS NOT NULL
    AND wm1.meta_key = '_thumbnail_id'
)
LEFT JOIN
wp_postmeta wm2
ON (
    wm1.meta_value = wm2.post_id
    AND wm2.meta_key = '_wp_attached_file'
    AND wm2.meta_value IS NOT NULL
)
LEFT JOIN
wp_term_relationships wtr
ON (
    object_id=p1.id
)
WHERE
p1.post_status='publish'
AND p1.post_type='post'
AND object_id NOT IN (SELECT `object_id` FROM wp_term_relationships where `term_taxonomy_id`=81)
GROUP BY ID
ORDER BY p1.post_date DESC
LIMIT 0,10

关于php - WordPress:如何使用自定义查询获取不包含特定类别的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30822037/

相关文章:

wordpress - 更改WordPress的登录标签, "Username"

具有固定列数的 MySQL Pivot 数据

mysql - 获取项目数和平均完成率

css - Wordpress 菜单居中对齐且间距均匀

javascript - 为什么我不能使用 Bootstrap 在 WordPress 主题的这个导航菜单中使用 data-div?

MySQLt 工作台约束

php - 是否可以从 HTML 中提取内联 CSS?

php - Codeigniter:使用 PDO 而不是 mysql

php - 尝试将 php 运算符作为字符串保存在数据库中

php - 没有 jQuery 的 document.this.style.display