0

谁能告诉我sql 查询以获取 wordpress 中特定帖子的 termid。我知道构建功能中的 wordpress 来获得这个。但我需要原始的 Sql 查询。

4

2 回答 2

0
SELECT ID FROM wp_posts WHERE ...

这假设一个典型的 WordPress 单次安装。多站点安装和修改表前缀的安装将具有与帖子表不同的前缀 wp_ 部分。

WHERE 子句之后的内容取决于您尝试获取帖子的方式。

例如,如果你知道你想要一个标题为“选择我”的帖子,你可以使用:

SELECT ID FROM wp_posts WHERE post_title LIKE '%select me%';

当然,不需要 LIKE。这是我用来避免大小写问题或使用部分字符串选择的快捷方式(顺便说一句可能很慢)。

您可以在 WordPress 的配置文件中找到数据库名称和其他信息。如果您不确定表名,请在命令行提示符下使用 describe 或使用 phpMyAdmin 等基于 Web 的工具进行连接。

祝你好运。

于 2013-09-22T03:23:12.987 回答
0

该类别可以有多个术语,因此您可以join如下表所示并在 where 子句中提供帖子 ID

SELECT t.* FROM `wp_terms` t
INNER JOIN `wp_term_taxonomy` tt ON (t.`term_id` =tt.`term_id`)
LEFT JOIN `wp_term_relationships` ttr ON (tt.`term_taxonomy_id`= ttr.`term_taxonomy_id`)
LEFT JOIN `wp_posts` p ON (ttr.`object_id` = p.`ID`) WHERE p.`ID`=23 
// example post id is 23

在 wp 中,您可以使用类参考 wpdb

global $wpdb;

$terms=$wpdb->get_results("SELECT t.* FROM $wpdb->prefix.`terms` t
    INNER JOIN $wpdb->prefix.`term_taxonomy` tt ON (t.`term_id` =tt.`term_id`)
    LEFT JOIN $wpdb->prefix.`term_relationships` ttr ON (tt.`term_taxonomy_id`= ttr.`term_taxonomy_id`)
    LEFT JOIN $wpdb->prefix.`posts` p ON (ttr.`object_id` = p.`ID`) WHERE p.`ID`=23 ");

很简单,您可以使用 WP 的get_the_category()它将返回类别数组

于 2013-09-22T05:45:18.917 回答