WordPress の title 要素に表示される「»」を変更・削除する

WordPress の title 要素に表示される「»」を変更・削除する

Posted at October 26,2008 12:33 AM
Tag:[Customize, the_title, WordPress, wp_title]

WordPress の title 要素の表示に wp_title() を使用していると、デフォルトの区切り文字として「»」が表示されます。
この区切り文字を削除・変更する方法について本エントリーにて紹介致します。

なお、配布中の WordPress テーマで、wp_title() を用いているため、記事ページの title 要素の先頭に「»」が表示されてしまいます。ご質問を頂きましたので、後半はこれを削除する方法も併せて紹介します。

1.wp_title() について

wp_title() は表示中の記事タイトルなどを出力するタグです。

  • 第1パラメータ:区切り文字
  • 第2パラメータ:表示方法
  • 第3パラメータ:区切り文字表示位置

第1パラメータ:区切り文字

パラメータを省略すると「»」が区切り文字となります。空の文字列「''」を設定すれば区切り文字は表示されません。

第2パラメータ:表示方法

true を設定すると、記事タイトルなどを echo で出力します。
false を設定すると、記事タイトルなどを関数の返却値として返します。

説明が難しいので、PHP のコードが読める方は下のコードを参照してください。パラメータ $display の処理は関数の最後の方で判定に用いられます。

function wp_title($sep = '»', $display = true, $seplocation = '') {
...ばっさり略...
    // Send it out
    if ( $display )
        echo $title;
    else
        return $title;
}

第3パラメータ:区切り文字表示位置

パラメータに 'right' を設定すると、記事タイトルなどの右側に表示します。デフォルトでは左側に表示します。

設定例

各パラメータを次のように設定すれば、title 要素を「ブログ記事名 - ブログ名」にできます。

  • 第1パラメータ:' - '
  • 第2パラメータ:true
  • 第3パラメータ:'right'
<title>
<?php if ( is_single() ) { ?><?php wp_title(' - ', true, 'right'); ?>: <?php } ?><?php bloginfo('name'); ?>
</title>

設定例

the_title() を使用する

記事ページについては、wp_title() の代わりに the_title() を利用する手もあります。the_title() は区切り文字を表示する代わりに、タイトルの前後に指定した文字列を出力できます。

function the_title($before = '', $after = '', $echo = true) {
    $title = get_the_title();
 
    if ( strlen($title) == 0 )
        return;
 
    $title = $before . $title . $after;
 
    if ( $echo )
        echo $title;
    else
        return $title;
}

2.配布テーマの変更方法

現状の配布テーマでは、記事ページで次のように先頭に「»」が表示されてしまいます。

設定例

これを解消するには「ヘッダー」テンプレートを次の「その1」「その2」いずれかの変更を行ってください。「その1」は wp_title() を、「その2」は the_title() を使用しています。
なお、配布テーマは 2008/10/25 に修正済みです。

変更前

<title>
<?php if ( is_single() ) { ?><?php wp_title(); ?>: <?php } ?><?php bloginfo('name'); ?></title>

変更後(その1)

<title>
<?php if ( is_single() ) { ?><?php wp_title(''); ?>: <?php } ?><?php bloginfo('name'); ?></title>

変更後(その2)

<title>
<?php if ( is_single() ) { ?><?php the_title(); ?>: <?php } ?><?php bloginfo('name'); ?></title>
関連記事
トラックバックURL


コメント

どうにかならないのかな、この»、と困っていました。
おかげさまで設定を直す事が出来ました。ありがとうございます。

[1] Posted by ok : August 6, 2010 12:33 AM

>okさん
こんにちは。
コメントありがとうございました。
お役に立てたようで何よりです。
ではでは!

[2] Posted by yujiro logo : August 6, 2010 12:25 PM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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