WordPressカテゴリに説明を入れるとカテゴリ一覧のリンクタグtitleが説明になるのをリンク名に変更する

wordpress

タイトルそのままですが、WordPressカテゴリに説明を入れるとカテゴリ一覧のリンクtitleが説明になるのをリンク名に変更する方法です。ちょっとマニアックな内容&設定です。

WordPressでは簡単にカテゴリが登録できます。カテゴリの登録にはカテゴリ名、スラッグと「説明」というのが登録できるようになっています。

WordPressのテーマ(Theme)にはカテゴリの説明を表示できるものがあり、本サイトで利用している(2013年10月31日現在)Twenty Thirteenでもカテゴリページで表示されるようになっています。(本サイトでは設定していませんが。。。)

カテゴリの説明を入れることができるので、訪問したユーザにとっても便利な機能ですが、一点問題が。。。

カテゴリの説明を入れると、カテゴリ一覧のaタグのタイトルが説明になってしまいます。

具体的には説明を入れないときのhtmlタグは以下のようになっています。

<a href="https://debate.co.jp/wordpress/" title="WordPress に含まれる投稿をすべて表示">WordPress</a>

説明を入れると以下のようになってしまいます。

<a href="https://debate.co.jp/wordpress/" title="カテゴリ説明に入れた文章">WordPress</a>

ユーザからの見た目は変わらないのですが、マウスオーバー時や検索エンジンのことを考えるとアレなので、これを

<a href="https://debate.co.jp/wordpress/" title="WordPress">WordPress</a>

上記のような状態にする方法です。

目次

カテゴリ一覧のリンクタグ修正方法

WordPressのテーマでなくWordPress本体のファイルを弄ります。他に方法があれば良いのですが、良い方法が思いつかずに。。。

WordPressの本体ファイルを弄くるので、以下の注意があります。

  • それなりに知識が必要
  • WordPress「本体」のアップデートがあったら、再度書き換えが必要になる

それでもOKという人は設定してみてください。

WordPress 3.7.1をベースに記載します。

wordpress/wp-includes/category-template.php の846行目あたり。

ちなみにcategory-template.phpのパーミッションは644なので、適宜変更が必要かもです。

        if ( $use_desc_for_title == 0 || empty($category->description) )
            $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
        else
            $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
             $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"'; */

上記の記述があるのですが、それを、

/*
        if ( $use_desc_for_title == 0 || empty($category->description) )
            $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
        else
            $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
             $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"'; */
*/
        $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';

こちらに変更します。

カテゴリの説明があったら、aタグの中身を説明にしてねって条件式を消して、そのままカテゴリタイトルを入れてね、という設定に変えています。

SEO的にもaタグのtitle要素に余計な文字を詰め込むのはアレなので、設定すると良いかもしれません。

くれぐれも設定は自己責任、バックアップをとって行なってくださいね。。。

 

  • URLをコピーしました!
目次