1

基本上,我有一个存储了类别 slug 的 cookie,使用这些数据我想查询数据库并返回类别的 ID。

我是 mysql 新手,这似乎是一个可能需要使用连接的高级查询,任何帮助或指导将不胜感激。

谢谢!

参考: http ://codex.wordpress.org/File:WP3.0-ERD.png

4

4 回答 4

3

查看get_category_by_slug页面上的示例:

<?php 
  $idObj = get_category_by_slug('slug'); 
  $id = $idObj->term_id;
?>

更重要的是,如果您已经存储了 slug,为什么不将 id 连同它一起存储,以避免每次都需要查询 ID?

编辑:根据您的评论,您可能最容易将以下内容添加到任何 WordPress 页面:

define('SAVEQUERIES', true);
global $wpdb;
print_r($wpdb->queries);

然后运行这篇文章的原始代码。这将使您能够查看 WordPress 为获取类别和相关数据而执行的查询,您可以复制它们并在代码中使用它们。

于 2012-05-19T02:31:29.893 回答
1
SELECT wp_term_taxonomy.term_taxonomy_id
FROM   wp_terms
  JOIN wp_term_taxonomy USING (term_id)
WHERE  wp_term_taxonomy.taxonomy = 'category'
   AND wp_terms.slug = ?

了解SQL 连接

于 2012-05-26T05:54:32.567 回答
0

好吧,名称和 slug 存储在同一张表上,所以应该这样做(仅 mysql,不涉及 WP Query):

SELECT term_id as id FROM wp_terms WHERE slug = 'slug-here';
于 2012-05-25T20:26:29.757 回答
0

您可以使用 WordPress 原生函数,get_term_by例如:

$term = get_term_by('slug',$SLUG_FROM_COOKIE,'category');

现在$term是一个术语对象,因此您可以使用$term->ID

于 2012-05-27T13:44:42.893 回答