wp_list_categoriesで、パラメータ「use_desc_for_title=false」がうまく作動しないから「title=false」としたら動いた

  • 11495
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

wp_list_categories のパラメータ use_desc_for_title がうまく動かない…、とずっと言われ続けてきていますが、WordPress3.3 になっても、どうやら正常に動いてないみたい模様ですね。

<?php wp_list_categories(); ?> でカテゴリを一覧で吐き出すと

<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>
のように、「title=”hogeに含まれる投稿をすべて表示”」 が表示されてしまいますので、今回はこの「に含まれる投稿をすべて表示」の文言を表示させない方法を紹介させていただきます。

「カテゴリ説明」を登録した上で「title=false」を使う

今ところ、これが個人的に上手く動いている方法です。

カテゴリの説明の登録

手順としては、WordPress 管理画面よりカテゴリの設定ページへ遷移し、面倒ですけれども「カテゴリの説明」を登録します。
wp_list_categoriesで、パラメータ「use_desc_for_title=false」がうまく作動しないから「title=false」としたら動いた

テーマファイルの編集

編集と言っても <?php wp_list_categories(); ?> のパラメータを変更するだけですが、
sidebar.phpなどに
<?php wp_list_categories('title=false'); ?>
と書きます。

wp_list_categories のパラメータは & でつないで複数設定することが出来ますので、例えば特定カテゴリ(カテゴリID1、2、3、5、7の場合)を出力する時は
<?php wp_list_categories('include=1,2,3,5,7&title=false'); ?>
のような感じになります。

「name」でソートする場合は
<?php wp_list_categories('sort_order=name&include=1,2,3,5,7&title=false'); ?>
のような感じになります。

注意点としては、title=false を追記したとしても、WordPress管理画面のカテゴリ設定ページで、カテゴリの説明が登録されていない場合は「title=”hogeに含まれる投稿をすべて表示”」とデフォルトの状態で吐き出されてしまいます。


wp-includes/category-template.php を編集する

もう1つ別の方法を紹介します。

カテゴリ説明の登録が面倒…あるいはファイル側だけで作業を完結したい!という場合は、
WordPress 3.1以降 「~に含まれる投稿をすべて表示」を非表示にする の記事でも紹介されているように、wp-includes/category-template.php ファイルの
$link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
という箇所を

$link .= 'title="' . esc_attr( sprintf($cat_name) ) . '"';
のように変更してしまう方法もあるようですね。

ただ、WordPress3.3 から上記「$link」が記述されているファイルが category-template.php に変わった…など、WordPress 本体のバージョンアップの際には注意が必要になりそうですね。

  • 11495
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

この投稿と関連する記事一覧

この記事に関するコメント

コメントを残す