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のカテゴリーページで使用します。私はしばらくこれをいじっていましたが、自分自身が混乱していると思います。別の結合でこれを行う方法はありますか、それとも 2 つの別々のクエリを実行する必要がありますか?

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 に答える