基本上,我有一个存储类别slug的cookie,使用这个数据我想查询数据库并返回类别的ID。
我是mysql的新手,这看起来像是一个可能需要使用连接的高级查询,非常感谢任何帮助或指导。
谢谢!
答案 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