wp_list_categories のパラメータ use_desc_for_title がうまく動かない…、とずっと言われ続けてきていますが、WordPress3.3 になっても、どうやら正常に動いてないみたい模様ですね。
<?php wp_list_categories(); ?> でカテゴリを一覧で吐き出すと
[php]
<li class="cat-item cat-item-**">
<a href="http://www.hogehoge.com/category/hoge/" title="hogeに含まれる投稿をすべて表示">hoge</a></li>
<li class="cat-item cat-item-**">
<a href="http://www.hogehoge.com/category/hogehoge/" title="hogehogeに含まれる投稿をすべて表示">hogehoge</a></li>
[/php]
のように、「title=”hogeに含まれる投稿をすべて表示”」 が表示されてしまいますので、今回はこの「に含まれる投稿をすべて表示」の文言を表示させない方法を紹介させていただきます。
「カテゴリ説明」を登録した上で「title=false」を使う
今ところ、これが個人的に上手く動いている方法です。カテゴリの説明の登録
手順としては、WordPress 管理画面よりカテゴリの設定ページへ遷移し、面倒ですけれども「カテゴリの説明」を登録します。テーマファイルの編集
編集と言っても <?php wp_list_categories(); ?> のパラメータを変更するだけですが、sidebar.phpなどに
[php] <?php wp_list_categories(‘title=false’); ?>
[/php] と書きます。
※wp_list_categories のパラメータは & でつないで複数設定することが出来ますので、例えば特定カテゴリ(カテゴリID1、2、3、5、7の場合)を出力する時は
[php] <?php wp_list_categories(‘include=1,2,3,5,7&title=false’); ?>
[/php] のような感じになります。
「name」でソートする場合は
[php] <?php wp_list_categories(‘sort_order=name&include=1,2,3,5,7&title=false’); ?>
[/php] のような感じになります。
注意点としては、title=false を追記したとしても、WordPress管理画面のカテゴリ設定ページで、カテゴリの説明が登録されていない場合は「title=”hogeに含まれる投稿をすべて表示”」とデフォルトの状態で吐き出されてしまいます。
wp-includes/category-template.php を編集する
もう1つ別の方法を紹介します。カテゴリ説明の登録が面倒…あるいはファイル側だけで作業を完結したい!という場合は、
WordPress 3.1以降 「~に含まれる投稿をすべて表示」を非表示にする の記事でも紹介されているように、wp-includes/category-template.php ファイルの
[php] $link .= ‘title="’ . esc_attr( sprintf(__( ‘View all posts filed under %s’ ), $cat_name) ) . ‘"’;
[/php] という箇所を
[php] $link .= ‘title="’ . esc_attr( sprintf($cat_name) ) . ‘"’;
[/php] のように変更してしまう方法もあるようですね。
ただ、WordPress3.3 から上記「$link」が記述されているファイルが category-template.php に変わった…など、WordPress 本体のバージョンアップの際には注意が必要になりそうですね。
コメントを残す