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='';

これで全てのタグが表示されるようになりました。

タグ: , ,

TrackBack