Wordpress:使用类别slug使用mysql查询获取类别ID

时间:2012-05-19 02:29:12

标签: mysql wordpress

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

我是mysql的新手,这看起来像是一个可能需要使用连接的高级查询,非常感谢任何帮助或指导。

谢谢!

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

4 个答案:

答案 0 :(得分: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执行的查询以获取类别和关联数据,您可以复制它们并在代码中使用它们。

答案 1 :(得分: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 joins

答案 2 :(得分:0)

嗯,名称和slug存储在同一个表中,所以这样的事情应该这样做(只有mysql,不涉及WP Query):

SELECT term_id as id FROM wp_terms WHERE slug = 'slug-here';

答案 3 :(得分:0)

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

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

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