【问题标题】:Wordpress Database SQL query help needed需要 Wordpress 数据库 SQL 查询帮助
【发布时间】:2010-06-18 08:57:34
【问题描述】:

我编写了一个 PHP 脚本来访问 wordpress 数据库中的最新项目,它确实如此。 但我需要使用它两次,一次用于特定类别的最新项目,另一次用于不同类别的...

但现在我无法弄清楚如何将查询放在一起。

帖子有一个 post_parent,它在另一个名为 wp_term_relationships 的表中被称为 object_id,并有一个 term_taxonomy_id,然后它与另一个名为 wp_terms 的表相关,其中 term_taxonomy_id 现在是 term_id,然后你就有了类别可供选择的 slug 名称...

我真的不明白这个查询是如何工作的。

我做了一个非常垃圾的模型,试图“直观地”解释我想要做什么......

SELECT *
FROM `wp_posts`
WHERE post_status = 'publish'
AND (SELECT term_taxonomy_id FROM wp_term_relationships WHERE object_id = post_parent)
AND (SELECT slug FROM wp_terms WHERE term_id = term_taxonomy_id)
ORDER BY ID DESC
LIMIT 1

真的很感激一些帮助... 谢谢。

【问题讨论】:

    标签: mysql database wordpress


    【解决方案1】:

    使用此 SQL 获取 CAT_ID(类别 ID)中最近发布的帖子。

    SELECT * FROM wp_posts
        INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
        INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
    WHERE wp_posts.post_status = 'publish'
        AND wp_term_taxonomy.taxonomy = 'category'
        AND wp_term_taxonomy.term_id = CAT_ID;
    ORDER BY wp_posts.post_date DESC
    LIMIT 1
    

    您可以重复使用此 SQL 更改 CAT_ID 的值来获取其他类别的帖子。

    【讨论】:

    • 老兄,你让我大吃一惊......我无法要求更好的解决方案。完美运行。非常感谢。
    • 我要补充的一条建议是,如果您打算在公共插件中发布它,请确保使用 $wpdb 变量作为表名。例如:SELECT * FROM $wpdb->posts
    • 我假设这是某种私有和/或外部 WP 脚本,但是是的,@John 你是对的 :)
    猜你喜欢
    • 2021-10-05
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多