wp-title プラグイン for WordPress
WordPress で title 要素に表示する文字を最適化するプラグインを作りました。「最適化」は書きすぎですが、主観的に「こう出力したい」というのを実現してみました。
具体的には、このプラグインを適用することで、月別アーカイブページの title 要素の表示を改善できます。
デフォルトテーマの月別アーカイブのデフォルト状態のタイトル表示は次のようになります。「12」の部分には「月」が表示されますが、「2008」には「年」がついてません。またセパレータと文字の間隔もまちまちです。個人的には、年と月の間のセパレータはなくても良いと思っています。
このプラグインを利用することで次のように書き換えることができます。
テンプレートタグを少し書き換えれば、次のように年月をブログ名の前に表示することもできます。
また、適用前のように、年と月の間にセパレータを適用することもできます(この変更方法は4項参照)。
日別アーカイブも次のように表示できます。
もちろん、カテゴリーアーカイブにも同じ表示を行えます。厳密にはカテゴリーアーカイブは wp_title() で実現できるのですが、このプラグインは wp_title() の機能を流用しているので、処理を振り分ける必要はありません。
1.wp-title プラグインのダウンロード
下記の 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() と全く同じですが、月別アーカイブや日別アーカイブのみ、年と月の間(あるいは月と日の間)にセパレータが適用されません。
3.1 デフォルトテーマの場合
変更前
<title><?php bloginfo('name');
if ( is_single() ) {
_e('» Blog Archive', 'kubrick');
}
wp_title(); ?></title>
変更後
<title><?php bloginfo('name');
if ( is_single() ) {
_e('» Blog Archive', 'kubrick');
}
get_title(); ?></title>
冒頭の三つめの画像と同じ表示にする場合
<title><?php
if ( is_single() ) {
_e('» 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 の使い方
- WordPressにFacebookのソーシャルプラグインを簡単に設置できるFacebook公式プラグイン「Facebook」
- WordPressのサイドメニューを折りたたむ「wp_list_folderプラグイン」バージョンアップ
- WordPressのカテゴリーリストに新着マークを表示する「wp_list_categories_with_newmarkプラグイン」
- WordPressの「Wordbookerプラグイン」を使ったFacebookウォール投稿とタイトル・画像を自由に設定できるようにするためのカスタマイズ
- WordPressのサイドバーリストをjQueryでツリー化する「wp_tree_makerプラグイン」バージョンアップ
- WordPressでGoogle Libraries APIを自動的に読み込む「Use Google Librariesプラグイン」
- WordPressのサイドメニューを折りたたむ「wp_list_folderプラグイン」
- WordPressのカレンダーを英語表示できる「Delocalized Calendar」プラグイン
- WordPressのURLをSSLや相対URLに変更する「wp_replace_domain」プラグイン
- WordPressのサイドバーリストをjQueryでツリー化する「wp_tree_maker」プラグイン
- WordPressにFacebookのOGP(Open Graph Protocol)を簡単に設定できる「WP-OGP」プラグイン
- WordPressの「続き」をjQueryで折りたたむ「wp_more_content_folder」プラグイン
- WordPressでコメント一覧を表示するCommented entry listプラグイン
- WordPressの記事プレビューを別ウィンドウで行える「wp_change_preview_targetプラグイン」
- WordPressのコメント連続投稿抑止時間を変更する「wp_throttle_comment_floodプラグイン」
≫ wp-titleプラグイン微調整とゲストブックプラグイン日本語化 from サイトのブログ
wp-titleプラグインとゲストブックプラグイン... [続きを読む]
はじめまして。お世話になっております。
こちらのプラグインを使用させていただこうとしたのですが、TOPに固定ページを設定していると、「固定ページタイトル - サイトタイトル」と言った形になってしまいます。
トップページのみ、固定ページタイトルなしの表示にしたいのですが、どうしたらいいでしょうか。
テーマは小粋空間様配布の3カラムを使用しております。
色々見て回ったのですが、自力では解決できず…。
お手数おかけいたしますがどうぞよろしくお願いいたします。