wp-title プラグイン for WordPress

wp-title プラグイン for WordPress

Posted at December 10,2008 1:33 AM
Tag:[Plugin, WordPress, wp_title]

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 の使い方
関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

wp-titleプラグイン微調整とゲストブックプラグイン日本語化 from サイトのブログ
wp-titleプラグインとゲストブックプラグイン... [続きを読む]

Tracked on July 1, 2010 10:04 AM
コメント

はじめまして。お世話になっております。

こちらのプラグインを使用させていただこうとしたのですが、TOPに固定ページを設定していると、「固定ページタイトル - サイトタイトル」と言った形になってしまいます。

トップページのみ、固定ページタイトルなしの表示にしたいのですが、どうしたらいいでしょうか。
テーマは小粋空間様配布の3カラムを使用しております。

色々見て回ったのですが、自力では解決できず…。
お手数おかけいたしますがどうぞよろしくお願いいたします。

[1] Posted by hani : June 6, 2011 1:16 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)