• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

テンプレートタグ/wp title

提供: WordPress Codex 日本語版
移動先: 案内検索

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

デフォルトではページタイトルの前にセパレーターを表示するので、ブログタイトルの後にページタイトルが続きます。これだと 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()