1

我在这里有这个工作查询,它​​将检索过去 60 天内使用的标签。

$term_ids = $wpdb->get_results("
SELECT DISTINCT wp_term_taxonomy.term_id, wp_terms.name
FROM wp_term_taxonomy
INNER JOIN wp_term_relationships ON wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id
INNER JOIN wp_posts ON wp_posts.ID = wp_term_relationships.object_id
INNER JOIN wp_terms ON wp_terms.term_id = wp_term_taxonomy.term_id
WHERE wp_term_taxonomy.taxonomy = 'post_tag' AND DATE_SUB(CURDATE(), $show_tags_in_days) <= $wpdb->posts.post_date", ARRAY_A);

我需要将其修改为过去 60 天和特定 Wordpress 类别中使用的标签。这将用于 Wordpress 的类别页面。我一直在摆弄这个,我想我只是让自己感到困惑。有没有办法通过另一个连接来做到这一点,或者我应该运行两个单独的查询?

4

2 回答 2

2

我设法弄清楚了。这是我提出的查询。

SELECT DISTINCT wp_term_taxonomy.term_id, wp_terms.name FROM wp_terms
INNER JOIN wp_term_relationships ON   wp_term_relationships.term_taxonomy_id=wp_terms.term_ID
INNER JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
INNER JOIN wp_posts ON wp_posts.ID=wp_term_relationships.object_id
WHERE wp_term_taxonomy.taxonomy = 'post_tag' AND wp_posts.ID IN (
SELECT wp_posts.ID FROM wp_terms
INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id=wp_terms.term_ID
INNER JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
INNER JOIN wp_posts ON wp_posts.ID=wp_term_relationships.object_id
WHERE wp_term_taxonomy.taxonomy = 'category' AND wp_terms.term_id=$cur_cat_id) LIMIT 10

这是一个更深入的解释: http: //www.ohthecode.com/wordpress/most-used-tags-in-wordpress/

于 2013-05-13T22:41:31.513 回答
0

此查询检索分类 ID。您很可能在另一个查询中使用 $term_ids 变量来检索既有 $term_ids 变量列表中的标签属于该类别的帖子。换句话说,找到你实际检索帖子的地方,并传入你感兴趣的 $term_ids 和类别 id。

但是,由于您说您是在类别模板页面上执行此操作(例如 category-mycategory.php),因此您可能根本不需要做任何额外的事情,因为应该自动传递类别。

于 2013-05-13T22:24:34.447 回答