当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「テンプレートタグ/wp title」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(用例)
(残りを和訳。原文リンクを本家の Code Reference へ変更。)
 
3行目: 3行目:
 
</div>
 
</div>
  
このテンプレートタグ '''<code>wp_title()</code>''' は、現在のページのタイトルを表示、または取得します。区切り文字を定義でき、[[Version 2.5|WordPress 2.5]] 以上では、タイトルの前/後どちらに出力するかを指定できます。
+
現在のページのタイトルを表示または取得します。
 
+
このタグは、メインページの[[The Loop|ループ]]の外側であれば、テンプレートのどこででも使えますが、主に、ウェブページ <code><nowiki><head></nowiki></code> 内の <code><nowiki><title></nowiki></code> 要素で使われます。
+
  
 +
デフォルトではページタイトルの前にセパレーターを表示するので、ブログタイトルの後にページタイトルが続きます。これだと Web ブラウザーのほとんどのタブにブログタイトルが表示されてしまうので、ユーザーが見るページタイトルとしては適切ではありません。
  
 +
ブログタイトルをページタイトルの後(または「右」)に表示するのは SEO にとっても有効です。しかしタブをサポートするほとんどのブラウザーにとって右にブログタイトルを表示するのは常識といってよいでしょう。そうするには $seplocation パラメータを使って 'right' を指定します。これは [[Version 2.5|WordPress 2.5]] で行われた変更で、テーマの後方互換性のために重要です。
  
 
<div id="Usage">
 
<div id="Usage">
13行目: 13行目:
 
</div>
 
</div>
  
  <?php wp_title('sep', echo, 'seplocation'); ?>
+
  <?php wp_title( $sep, $display, $seplocation ); ?>
<!-- 中央の引数 echo は、関数のコード上は display のままだが、Codex 原文に合わせて echo とした。 -->
+
  
 +
<div id="Return_Values">
 
== 戻り値 ==
 
== 戻り値 ==
関数は、連結された文字列を返します。
+
</div>
  
それは、常にデフォルトの文字列をデータベースに照会し、デフォルトの文字列の値は、投稿やページのタイプによって異なります。:
+
{{Return||文字列/null|取得した文字列。表示した時は null。}}
  
クエリに基づいたタイトル文字列:
+
この関数は連結された文字列を返します。デフォルトの文字列を毎回データベースへ照会します。デフォルトの文字列は投稿やページのタイプによって異なります:
  
; 単体記事/[[:ja:Pages|WordPressページ]] : 記事/ページタイトル
+
; ひとつの投稿/[[:ja:Pages|固定ページ]] : 投稿/ページのタイトル
; 日付ベースのアーカイブ : 日付 (例: "2006", "2006 - January")
+
; 日付ベースのアーカイブ : 日付(例:"2006", "2006 - January")
; カテゴリ : カテゴリ名
+
; カテゴリー : カテゴリー名
 
; 著者ページ : [[Users Your Profile SubPanel#name|ユーザの公開名]]
 
; 著者ページ : [[Users Your Profile SubPanel#name|ユーザの公開名]]
  
関数は、先頭に追加または'''sep'''文字列を追加し、全体の値を返します。
+
$sep 文字列をデフォルトの文字列の先頭または末尾へ追加して全体の値を返します。
 +
 
 +
<div id="Parameters">
 +
== パラメータ ==
 +
</div>
 +
 
 +
{{Parameter|$sep|文字列|ページタイトルに含める項目の区切り文字。|オプション|'&amp;raquo;'}}
 +
 
 +
{{Parameter|$display|真偽値|タイトルを表示する(true)か、PHP 文字列として使えるようにタイトルの値を返す(false)か。|オプション|true}}
 +
 
 +
{{Parameter|$seplocation|文字列|$sep 文字列を表示する位置。<code>'right'</code> ならタイトルの右(後)に、そうでなければ左(前)に $sep を表示する。|オプション|<code><nowiki>''</nowiki></code> &mdash; $sep を左(前)に表示。}}
  
 
<div id="Examples">
 
<div id="Examples">
 
== 用例 ==
 
== 用例 ==
 
</div>
 
</div>
<!--古い用例
+
 
<div id="Default_Usage">
+
 
=== 初期設定での使用 ===
 
=== 初期設定での使用 ===
</div>
 
  
デフォルトのまま用いて、ブログ名([[テンプレートタグ/bloginfo|<code>bloginfo()</code>]] 使用)とページのタイトルを表示する例です。単体記事ページでの表示結果は「ブログ名 &raquo; 記事タイトル」となります。
+
例えば次のように単一投稿についてパラメーターを何も指定せず呼び出す場合:
<pre><title><?php bloginfo('name'); ?> <?php wp_title(); ?></title></pre>
+
  
次の例も全く同じ事を行ないます。
+
<title><?php wp_title(); ?></title>
<pre><title><?php bloginfo('name'); ?> <?php wp_title('',true,''); ?></title></pre>
+
 
+
<div id="Using_Separator">
+
=== 区切り文字の使用 ===
+
</div>
+
  
区切り文字として "--" を用いて、ブログ名([[テンプレートタグ/bloginfo|<code>bloginfo()</code>]] 使用)とページのタイトルをウェブページの <code><nowiki><title></nowiki></code> タグに表示。表示結果は、単体記事ページであれば '''ブログ名--記事タイトル''' となります。
+
投稿タイトルが「Hello world!」なら、この関数は次の文字列を表示します:
  
  <title><?php bloginfo('name'); ?><?php wp_title('--'); ?></title>
+
  &raquo; Hello world!
  
 
<div id="Separator_with_Blog_Name_and_Title_Reversed">
 
<div id="Separator_with_Blog_Name_and_Title_Reversed">
56行目: 58行目:
 
</div>
 
</div>
  
<code><nowiki><title></nowiki></code> タグのページタイトルとブログ名を、上の例とは逆さにする例です('''記事タイトル--ブログ名''')。
+
第3パラメータ $seplocation を使って、タイトルの右側にセパレータ(<code>--</code>)を表示させます。
  
 +
<pre>
 +
<title>
 +
<?php wp_title( '--', true, 'right' ); ?>
 +
<?php bloginfo( 'name' ); ?>
 +
</title>
 +
</pre>
 +
 +
=== $sep が空文字列の場合 ===
  
==== [[Version 2.5|WordPress 2.5]] 以降の場合 ====
+
$sep は空文字列でも構いません。そうすると結果から '''&raquo;''' が削除されます。これは例えば次のように指定します:
  
第3パラメータ seplocation を使って、タイトルの右側にセパレータ(<code>--</code>)を表示させます。
+
<title><?php wp_title( <nowiki>''</nowiki> ); ?></title>
  
<title>
+
投稿タイトルが「Hello world!」なら、この関数は次の文字列を表示します:
<?php wp_title('--', true, 'right'); ?>
+
<?php bloginfo('name'); ?>
+
</title>
+
  
(参照)
+
Hello world!
* [http://bleu.raindrop.jp/2008/03/25/wp-25-rc1-%e3%81%9d%e3%81%ae%e5%8f%82/ insomniaque &raquo; WP 2.5 RC1 その参]
+
  
==== WordPress 2.3.2 以前の場合 ====
+
=== フィルターによるカスタマイズ ===
<code>wp_title()</code> からは区切り文字を除き、<code>wp_title()</code> に値があるか判定、値があれば [[テンプレートタグ/bloginfo|<code>bloginfo()</code>]] との間に区切り文字を表示します。
+
  
<title>
+
ページによってタイトルの表示形式を変えたいならフィルターを利用できます。
<?php wp_title(' '); ?>
+
<?php if ( wp_title(' ', false) ) { echo '--'; } ?>
+
<?php bloginfo('name'); ?>
+
</title>
+
  
ここまで古い用例 -->
 
 
 
 
=== 初期設定での使用 ===
 
 
If you do not pass any parameters for a single post, for example:
 
<pre> <title><?php wp_title(); ?></title></pre>
 
 
If the title of the post is "Hello world!", then the function will return
 
<pre> &raquo; Hello world!</pre>
 
 
=== Zero-character '''sep''' ===
 
 
The '''sep''' string may be zero characters, which will remove '''&raquo;''' from the returned value. To do this, set the '''sep''' parameter to zero characters, for example:
 
 
<pre> <title><?php wp_title(''); ?></title></pre>
 
 
If the title of the post is "Hello world!", then the function will return:
 
<pre> Hello world!</pre>
 
 
=== フィルターによるカスタマイズ ===
 
If you want to change the way that the title displays on different pages you can use a filter.
 
 
<pre>
 
<pre>
 
/**
 
/**
108行目: 86行目:
 
  *
 
  *
 
  * @param string $title Default title text for current view.
 
  * @param string $title Default title text for current view.
  * @param string $sep Optional separator.
+
  * @param string $sep   Optional separator.
 
  * @return string The filtered title.
 
  * @return string The filtered title.
 
  */
 
  */
function theme_name_wp_title( $title, $sep ) {
+
function wpdocs_theme_name_wp_title( $title, $sep ) {
if ( is_feed() ) {
+
    if ( is_feed() ) {
return $title;
+
        return $title;
}
+
    }
+
   
global $page, $paged;
+
    global $page, $paged;
 
+
// Add the blog name
+
    // Add the blog name
$title .= get_bloginfo( 'name', 'display' );
+
    $title .= get_bloginfo( 'name', 'display' );
 
+
// Add the blog description for the home/front page.
+
    // Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
+
    $site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
+
    if ( $site_description && ( is_home() || is_front_page() ) ) {
$title .= " $sep $site_description";
+
        $title .= " $sep $site_description";
}
+
    }
 
+
// Add a page number if necessary:
+
    // Add a page number if necessary:
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
+
    if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
+
        $title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
}
+
    }
 
+
    return $title;
return $title;
+
 
}
 
}
add_filter( 'wp_title', 'theme_name_wp_title', 10, 2 );
+
add_filter( 'wp_title', 'wpdocs_theme_name_wp_title', 10, 2 );
 
</pre>
 
</pre>
  
=== Covering Homepage ===
+
=== ホームページに対応させる ===
  
カスタムループとstuffまたはカスタムのフロントページでカスタムホームページを使用している場合は、空のwp_titleを持つことになります。
+
カスタムループなどを含むカスタムホームページ、またはカスタムフロントページを使っている場合は、wp_title が空になります。こうしたホームページの wp_title にブログの説明やタグラインを追加するうまいハックは次のようになります。まず次のように wp_title を記述します:
  
Here goes a neat hack to add the description/tagline at the wp_title place on homepage:
+
<title><?php wp_title( <nowiki>''</nowiki> ); ?></title>
  
<pre><title><?php wp_title(''); ?></title></pre>
+
そしてテーマの functions.php ファイルに次のようなコードを含めます:
  
テーマファイルの "functions.php"にて :
+
<pre>
<pre>add_filter( 'wp_title', 'baw_hack_wp_title_for_home' );
+
add_filter( 'wp_title', 'wpdocs_hack_wp_title_for_home' );
function baw_hack_wp_title_for_home( $title )
+
 +
/**
 +
* Customize the title for the home page, if one is not set.
 +
*
 +
* @param string $title The original title.
 +
* @return string The title to use.
 +
*/
 +
function wpdocs_hack_wp_title_for_home( $title )
 
{
 
{
   if( empty( $title ) && ( is_home() || is_front_page() ) ) {
+
   if ( empty( $title ) && ( is_home() || is_front_page() ) ) {
     return __( 'Home', 'theme_domain' ) . ' | ' . get_bloginfo( 'description' );
+
     $title = __( 'Home', 'textdomain' ) . ' | ' . get_bloginfo( 'description' );
 
   }
 
   }
 
   return $title;
 
   return $title;
}</pre>
+
}
もちろん希望通りに、この文字列の書式を設定することができます。
+
</pre>
 +
もちろん自分の好きなようにこの文字列の書式を設定することができます。
  
 +
== 変更履歴 ==
  
<div id="Parameters">
 
 
== パラメータ ==
 
</div>
 
 
; sep
 
: (''文字列'') タイトルの前/後に表示するテキスト、すなわち、セパレータ(区切り文字)。デフォルト(sep がブランク)では、記事タイトルの前または後ろ('''seplocation''' 指定による)に <code>'&amp;raquo;'</code>(&raquo;)記号を置きます。
 
; echo
 
: (''真偽値'') タイトルを表示する(True)か、PHP 文字列として使えるようにタイトルの値を返す(False)か。有効値:
 
:*<code>1</code> (True) - (初期値) 表示
 
:*<code>0</code> (False) - 値を返す
 
; seplocation
 
: (''文字列'')タイトルに対する '''sep''' 文字列の出力位置を指定します。この値を <code>'right'</code> とすると、'''sep''' 文字列を記事タイトルの後ろ(右側)に置きます。初期値 <code><nowiki>''</nowiki></code>(ブランク)や、<code>'right'</code> 以外の値では、'''sep''' 文字列をタイトルの直前(左側)に置きます。このパラメータは [[Version 2.5]] 以上でのみ使えます。
 
:* <code>'right'</code> - 区切り文字を後ろ(右)に表示
 
:* <code><nowiki>''</nowiki></code>(初期値)・その他の文字列 - 区切り文字を前(左)に表示
 
 
== 変更履歴 ==
 
 
* [[Version 1.0|1.0.0]]:新規導入
 
* [[Version 1.0|1.0.0]]:新規導入
* [[Version 2.5|2.5]] : パラメータに seplocation が追加されました。「記事タイトル &laquo; ブログ名」のような反転表記がしやすくなりました([[#ブログ名とタイトルを反転して区切る|用例]])。
+
* [[Version 2.5|2.5]] : パラメータに $seplocation が追加されました。「記事タイトル &laquo; ブログ名」のような反転表記がしやすくなりました([[#Separator_with_Blog_Name_and_Title_Reversed|用例]])。
  
==ソースファイル ==
+
== ソースファイル ==
 
+
<code>wp_title()</code> は {{Trac|wp-includes/general-template.php}}にあります。
+
  
 +
<code>wp_title()</code> は {{Trac|wp-includes/general-template.php}} にあります。
  
 
<div id="Related">
 
<div id="Related">
== 関連 ==
+
== 関連項目 ==
 
</div>
 
</div>
  
190行目: 158行目:
 
{{PHP Function Tag Footer}}
 
{{PHP Function Tag Footer}}
  
{{NeedTrans}}
+
最新英語版: [https://developer.wordpress.org/reference/functions/wp_title/ Code Reference / Functions / wp_title()] <!-- 2015年12月30日 -->
 
+
{{原文|Template Tags/wp_title|59651}}<!-- 07:55, July 23, 2008 Viper 版 -->
+
  
{{DEFAULTSORT:wp_title}}
+
{{DEFAULTSORT:Wp_title}}
 
[[Category:wp2.5]]
 
[[Category:wp2.5]]
  
 
[[en:Template Tags/wp_title]]
 
[[en:Template Tags/wp_title]]

2015年12月30日 (水) 23:47時点における最新版

現在のページのタイトルを表示または取得します。

デフォルトではページタイトルの前にセパレーターを表示するので、ブログタイトルの後にページタイトルが続きます。これだと Web ブラウザーのほとんどのタブにブログタイトルが表示されてしまうので、ユーザーが見るページタイトルとしては適切ではありません。

ブログタイトルをページタイトルの後(または「右」)に表示するのは SEO にとっても有効です。しかしタブをサポートするほとんどのブラウザーにとって右にブログタイトルを表示するのは常識といってよいでしょう。そうするには $seplocation パラメータを使って 'right' を指定します。これは WordPress 2.5 で行われた変更で、テーマの後方互換性のために重要です。

使い方

<?php wp_title( $sep, $display, $seplocation ); ?>

戻り値

(文字列/null) 
取得した文字列。表示した時は null。

この関数は連結された文字列を返します。デフォルトの文字列を毎回データベースへ照会します。デフォルトの文字列は投稿やページのタイプによって異なります:

ひとつの投稿/固定ページ 
投稿/ページのタイトル
日付ベースのアーカイブ 
日付(例:"2006", "2006 - January")
カテゴリー 
カテゴリー名
著者ページ 
ユーザの公開名

$sep 文字列をデフォルトの文字列の先頭または末尾へ追加して全体の値を返します。

パラメータ

$sep
文字列) (オプション) ページタイトルに含める項目の区切り文字。
初期値: '&raquo;'
$display
真偽値) (オプション) タイトルを表示する(true)か、PHP 文字列として使えるようにタイトルの値を返す(false)か。
初期値: true
$seplocation
文字列) (オプション) $sep 文字列を表示する位置。'right' ならタイトルの右(後)に、そうでなければ左(前)に $sep を表示する。
初期値: '' — $sep を左(前)に表示。

用例

初期設定での使用

例えば次のように単一投稿についてパラメーターを何も指定せず呼び出す場合:

<title><?php wp_title(); ?></title>

投稿タイトルが「Hello world!」なら、この関数は次の文字列を表示します:

» Hello world!

ブログ名とタイトルを反転して区切る

第3パラメータ $seplocation を使って、タイトルの右側にセパレータ(--)を表示させます。

<title>
<?php wp_title( '--', true, 'right' ); ?>
<?php bloginfo( 'name' ); ?>
</title>

$sep が空文字列の場合

$sep は空文字列でも構いません。そうすると結果から » が削除されます。これは例えば次のように指定します:

<title><?php wp_title( '' ); ?></title>

投稿タイトルが「Hello world!」なら、この関数は次の文字列を表示します:

Hello world!

フィルターによるカスタマイズ

ページによってタイトルの表示形式を変えたいならフィルターを利用できます。

/**
 * Filters wp_title to print a neat <title> tag based on what is being viewed.
 *
 * @param string $title Default title text for current view.
 * @param string $sep   Optional separator.
 * @return string The filtered title.
 */
function wpdocs_theme_name_wp_title( $title, $sep ) {
    if ( is_feed() ) {
        return $title;
    }
     
    global $page, $paged;
 
    // Add the blog name
    $title .= get_bloginfo( 'name', 'display' );
 
    // Add the blog description for the home/front page.
    $site_description = get_bloginfo( 'description', 'display' );
    if ( $site_description && ( is_home() || is_front_page() ) ) {
        $title .= " $sep $site_description";
    }
 
    // Add a page number if necessary:
    if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
        $title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
    }
    return $title;
}
add_filter( 'wp_title', 'wpdocs_theme_name_wp_title', 10, 2 );

ホームページに対応させる

カスタムループなどを含むカスタムホームページ、またはカスタムフロントページを使っている場合は、wp_title が空になります。こうしたホームページの wp_title にブログの説明やタグラインを追加するうまいハックは次のようになります。まず次のように wp_title を記述します:

<title><?php wp_title( '' ); ?></title>

そしてテーマの functions.php ファイルに次のようなコードを含めます:

add_filter( 'wp_title', 'wpdocs_hack_wp_title_for_home' );
 
/**
 * Customize the title for the home page, if one is not set.
 *
 * @param string $title The original title.
 * @return string The title to use.
 */
function wpdocs_hack_wp_title_for_home( $title )
{
  if ( empty( $title ) && ( is_home() || is_front_page() ) ) {
    $title = __( 'Home', 'textdomain' ) . ' | ' . get_bloginfo( 'description' );
  }
  return $title;
}

もちろん自分の好きなようにこの文字列の書式を設定することができます。

変更履歴

  • 1.0.0:新規導入
  • 2.5 : パラメータに $seplocation が追加されました。「記事タイトル « ブログ名」のような反転表記がしやすくなりました(用例)。

ソースファイル

wp_title()wp-includes/general-template.php にあります。


記事

コードドキュメンテーション

  • クラス: WP_Query - WP_Query クエリの詳細概要
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方概要
  • 関数: get_query_var()
  • 関数: query_posts() - 追加カスタムクエリの作成
  • 関数: get_post() - 項目の ID を使ってその投稿のレコードをデータベースから取得する
  • 関数: get_posts() - 項目の配列を返す特別な関数。
  • 関数: get_pages() - ページの配列を返す特別な関数。
  • 関数: have posts() - クエリが記事を返すかどうか判断する条件分岐。
  • 関数: the_post() - クエリの後に自動的にループを設定するのに使われる。
  • 関数: rewind_posts() - 現在のループをクリアする。
  • 関数: setup_postdata() - ループ内で単一クエリ結果のデータを設定する。
  • 関数: wp_reset_postdata() - 以前のクエリを復元する(通常、ループ内のもう一つのループで使われる)。
  • 関数: wp_reset_query()
  • 関数: is_main_query() - 変更するのがメインクエリであるよう保証する。
  • アクションフック: pre_get_posts - 実行される前に WordPress クエリを変更する。
  • アクションフック: the_post - 投稿オブジェクトをクエリの後に変更する。
  • フィルターフック: found_posts - found_posts WP_Query オブジェクトの値を変更する


関連

固定ページ: get_all_page_ids(), get_ancestors(), get_page_link(), get_page_by_path(), get_page_by_title(), get_page_children(), get_page_hierarchy(), get_page_uri() /en, get_pages(), is_page(), page_uri_index() /en, wp_list_pages(), wp_page_menu()


リスト・ドロップダウン関数: wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()


テンプレートタグへの PHP 関数型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: Code Reference / Functions / wp_title()