get_terms関数で件数をキーに入れたらSQL文がおかしい
-
たくさんの記事とTaxonomyがpost_tagがあるとします。
ここで、post_tagの上位ランキングを表示するコーディングを作ったら、SQL文生成が間違えていると思うのですが。
●php実行文$taxs = get_terms('post_tag', array( 'get' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'number' => 30, ) );
●間違いのSQL文を出力したところ
/wp-include/taxonomy.php 1640行目にSQL文の$queryを表示させたら、以下のSQL文だった
<SQL文1>SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('post_tag') ORDER BY t.term_order DESC LIMIT 30
●問題箇所
ORDER BYのところに件数の’count’が入っていない。
t,term_orderがソートキーに入っているが、現状テーブルは0埋めになっているので、実質t.term_idでソートとなっている。
●正しいと思われるSQL文
<SQL文2>SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('post_tag') ORDER BY t.term_order, tt.count DESC LIMIT 30
●SQL文の実行結果を画像ファイルにして添付します。
縮尺が統一されておらず、すみません。
SQL文1.jpg:
https://scontent.xx.fbcdn.net/t31.0-8/13522742_1873307189563453_6562267822709971625_o.jpg
SQL文2.jpg:
https://scontent.xx.fbcdn.net/t31.0-8/13495506_1873307296230109_4147628386160982437_o.jpg
よろしくお願いいたします。
<追記>
解決後に画像ファイルは消去します。ご了承ください。[モデレーター編集: フォーラムカテゴリーを『バグ報告と提案』から『使い方全般』へ移動させました。『バグ報告と提案』はWordPressそのものに関する不具合報告のためのものですが、本件は個別の環境が原因と想定されるため。]
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「get_terms関数で件数をキーに入れたらSQL文がおかしい」には新たに返信することはできません。