Click Tagsプラグインのバグ修正
2008 年 4 月 11 日 by 山平WordPressの登録済みタグの入力が楽になるプラグイン「Click Tags」のデバッグ報告です。
Click Tags
http://www.stuff.yellowswordfish.com/click-tags/
対象バージョン:2.0.2
現象:(管理画面からタグを追加した場合など)1回も使われていないタグが入力候補として表示されない
問題の確認と修正
DBからタグを抽出するget_terms関数への引数”hide_empty=false”に問題があります。
この引数はget_terms関数からwp_parse_args関数へ引き渡されてパースされる際に、論理値の偽(false)ではなく文字列の”false”と解釈されていました。
//function create_click_tags(抜粋) //[/wordpress/wp-content/plugins/click-tags.php] // get the complete list of tags into an array $tags=get_terms('post_tag', "hide_empty=false&field=names&orderby=name"); $taglist='';
文字列”false”は真(true)と評価されますので、SQLに「利用回数が0より大きい」という条件が付いてしまいます。
//function &get_terms(抜粋) //[/wordpress/wp-includes/taxonomy.php] if ( $hide_empty && !$hierarchical ) $where .= ' AND tt.count > 0';
これを回避するためには、パースされて偽(false)と評価される引数を渡す必要がありますので、以下のように修正しました。
//function create_click_tags(抜粋) //[/wordpress/wp-content/plugins/click-tags.php] // get the complete list of tags into an array $tags=get_terms('post_tag', "hide_empty=0&field=names&orderby=name"); //$tags=get_terms('post_tag', "hide_empty=false&field=names&orderby=name"); $taglist='';
これで全てのタグが表示されるようになりました。