TopWordPressプラグイン > 2008年12月
2008年12月10日

wp-title プラグイン for WordPress

December 10,2008 1:33 AM
Tag:[, , ]
Permalink

WordPress で title 要素に表示する文字を最適化するプラグインを作りました。「最適化」は書きすぎですが、主観的に「こう出力したい」というのを実現してみました。

具体的には、このプラグインを適用することで、月別アーカイブページの title 要素の表示を改善できます。

デフォルトテーマの月別アーカイブのデフォルト状態のタイトル表示は次のようになります。「12」の部分には「月」が表示されますが、「2008」には「年」がついてません。またセパレータと文字の間隔もまちまちです。個人的には、年と月の間のセパレータはなくても良いと思っています。

月別アーカイブ(変更前)

このプラグインを利用することで次のように書き換えることができます。

月別アーカイブ(変更後)

テンプレートタグを少し書き換えれば、次のように年月をブログ名の前に表示することもできます。

月別アーカイブ(変更後2)

また、適用前のように、年と月の間にセパレータを適用することもできます(この変更方法は4項参照)。

日別アーカイブ

日別アーカイブも次のように表示できます。

日別アーカイブ

もちろん、カテゴリーアーカイブにも同じ表示を行えます。厳密にはカテゴリーアーカイブは wp_title() で実現できるのですが、このプラグインは wp_title() の機能を流用しているので、処理を振り分ける必要はありません。

1.wp-title プラグインのダウンロード

下記の wp-title.zip をクリックして、プラグインアーカイブをダウンロード。

wp-title.zip
2008.12.10 初版

2.wp-title プラグインのアップロード・インストール

プラグインアーカイブを展開し、中にある wp-title フォルダごと、WordPress の wp-content/plugins ディレクトリにアップロード。

2.6.x であれば、管理画面の「停止中のプラグイン」にある「wp-title」の右側の「使用する」をクリックしてください。「使用中のプラグイン」に次のように表示されればインストール完了です。

使用中のプラグイン

3.テンプレートの修正

このプラグインでは get_title() というテンプレートタグを提供します。

ご利用のテーマのテーマエディタより、「ヘッダー」をクリックし、テキストエリアにある title 要素に使われているテンプレートタグを書き換えてください。

例えば、wp_title() が使われている場合は、単純に get_title() に書き換えます。パラメータは wp_title() と全く同じですが、月別アーカイブや日別アーカイブのみ、年と月の間(あるいは月と日の間)にセパレータが適用されません。

参考:テンプレートタグ/wp title

3.1 デフォルトテーマの場合

変更前

<title><?php bloginfo('name');
if ( is_single() ) {
        _e('&raquo; Blog Archive', 'kubrick');
}
wp_title(); ?></title>

変更後

<title><?php bloginfo('name');
if ( is_single() ) {
        _e('&raquo; Blog Archive', 'kubrick');
}
get_title(); ?></title>

冒頭の三つめの画像と同じ表示にする場合

<title><?php
if ( is_single() ) {
        _e('&raquo; Blog Archive', 'kubrick');
}
get_title(' - ',true,'right'); bloginfo('name');?></title>

3.2 小粋空間テーマの場合

設定内容がテーマに依存するわけではありませんが、次のようにしてください。

変更後

<title>
<?php if ( is_single() ) { ?><?php wp_title(''); ?> - <?php } else { get_title(' - ',true,'right'); } ?><?php bloginfo('name'); ?></title>

4.その他

プラグインファイル wp-title.php の内容を変更すれば、年と月(あるいは月と日)の間にセパレータを適用することもできます。

プラグインファイル wp-title.php の65 行目あたりは次のようになっています。

    if ( !empty($m) ) {
        $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
        $my_month = $wp_locale->get_month(substr($m, 4, 2));
        $my_day = intval(substr($m, 6, 2));
        $title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
    }
    // If there's a month(with separator)
//  if ( !empty($m) ) {
//      $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
//      $my_month = $wp_locale->get_month(substr($m, 4, 2));
//      $my_day = intval(substr($m, 6, 2));
//      $title = "$my_year" . ($my_month ? "$sep  $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
//  }
    // If there's a month(original)
//  if ( !empty($m) ) {
//      $my_year = substr($m, 0, 4);
//      $my_month = $wp_locale->get_month(substr($m, 4, 2));
//      $my_day = intval(substr($m, 6, 2));
//      $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
//  }

年と月(あるいは月と日)の間にセパレータを適用するには、次のようにコメントアウトの位置を変更します。

//    if ( !empty($m) ) {
//        $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
//        $my_month = $wp_locale->get_month(substr($m, 4, 2));
//        $my_day = intval(substr($m, 6, 2));
//        $title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
//    }
    // If there's a month(with separator)
  if ( !empty($m) ) {
      $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
      $my_month = $wp_locale->get_month(substr($m, 4, 2));
      $my_day = intval(substr($m, 6, 2));
      $title = "$my_year" . ($my_month ? "$sep  $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
  }
    // If there's a month(original)
//  if ( !empty($m) ) {
//      $my_year = substr($m, 0, 4);
//      $my_month = $wp_locale->get_month(substr($m, 4, 2));
//      $my_day = intval(substr($m, 6, 2));
//      $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
//  }

これで次のような表示にすることができます。

日別アーカイブ

次のように、一番下の6行のコメントを無効にすると、オリジナルの wp_title() と同じ振る舞いになります。

//    if ( !empty($m) ) {
//        $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
//        $my_month = $wp_locale->get_month(substr($m, 4, 2));
//        $my_day = intval(substr($m, 6, 2));
//        $title = "$my_year" . ($my_month ? " $my_month" : "") . ($my_day ? " $my_day" . __('Day','Title') : "");
//    }
    // If there's a month(with separator)
//  if ( !empty($m) ) {
//      $my_year = substr($m, 0, 4) . __('Year','Title') . " ";
//      $my_month = $wp_locale->get_month(substr($m, 4, 2));
//      $my_day = intval(substr($m, 6, 2));
//      $title = "$my_year" . ($my_month ? "$sep  $my_month" : "") . ($my_day ? " $sep $my_day" . __('Day','Title') : "");
//  }
    // If there's a month(original)
  if ( !empty($m) ) {
      $my_year = substr($m, 0, 4);
      $my_month = $wp_locale->get_month(substr($m, 4, 2));
      $my_day = intval(substr($m, 6, 2));
      $title = "$my_year" . ($my_month ? "$sep $my_month" : "") . ($my_day ? "$sep $my_day" : "");
  }

つまりこのプラグインは wp_title() のソースコードをほぼそのまま利用して、一部を書き換えているだけです。

5.プラグインファイルのローカライズ

このプラグインでは「年」や「日」という日本語を表示するためにプラグインでローカライズを行っています。

参考サイトは下記です。ありがとうございました。

翻訳ファイルを用意してプラグインを日本語化する

po ファイルもプラグインに同梱しているので、このプラグインを改造して他のローカライズを行いたい場合にご利用ください。poEDIT を利用して po ファイルを編集すると mo ファイルをはきだします。

参考:poEDIT の使い方
Comments [1] | Trackbacks [1]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3