get_bloginfo():サイトのタイトル・URL・バージョンを取り出す(WordPress)

get_bloginfo() は、サイトのタイトル・キャッチフレーズ・URL・WordPress のバージョンなど、サイトの基本の情報を取り出す関数です。管理画面の「設定」→「一般」で入れた値を、テーマやプラグインの中で使うときによく使います。

書き方

get_bloginfo( string $show = '', string $filter = 'raw' ): string
  • $show:取り出す情報の名前。省くと name(サイトのタイトル)
  • $filter:display にすると、表示用のフィルター(bloginfo)を通した値になる
  • 戻り値:情報の文字列

よく使う $show の値

$show 取り出せるもの
name サイトのタイトル
description キャッチフレーズ
url サイトのアドレス(home_url() と同じ)
wpurl WordPress のアドレス(site_url() と同じ)
version WordPress のバージョン
charset 文字コード(ふつうは UTF-8)
language サイトの言語(日本語なら ja)
admin_email 管理者のメールアドレス

使い方の例

作業環境(WordPress 7.1.3)で試した結果を、コメントに書いています。

サイトのタイトルとバージョンを取り出す

<?php
echo get_bloginfo( 'name' );     // WordPress functions.php
echo get_bloginfo( 'version' );  // 7.1.3
echo get_bloginfo( 'charset' );  // UTF-8
echo get_bloginfo( 'language' ); // ja

タイトルの「&」は「&amp;」で返ってくる

サイトのタイトルに「&」を入れると、WordPress は保存するときに「&amp;」の形に変えます。そのため、get_bloginfo( 'name' ) の値も「&amp;」のままです。HTML の中に出すときはこれで正しく「&」と表示されますが、メールの件名や、HTML でない場所にそのまま使うと「&amp;」と見えてしまいます。

<?php
// 「設定」→「一般」でタイトルを Nail & Beauty にしたとき
echo get_option( 'blogname' );                 // Nail &amp; Beauty(保存されている値)
echo get_bloginfo( 'name' );                   // Nail &amp; Beauty
echo get_bloginfo( 'name', 'display' );        // Nail &amp; Beauty

// メールの件名など、HTML でない場所に使うときは戻す
echo wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ); // Nail & Beauty

WordPress 本体も、メールを送るときはサイトのタイトルを wp_specialchars_decode() で戻してから使っています。

プラグインのメールの件名などで「&」の記号が崩れて出るのは、サイトのタイトルを戻さずに使っているためです。自分のコードなら wp_specialchars_decode() で戻します。プラグインの設定で件名を書けるなら、サイトのタイトルの変数を使わずに、文字で書くのが手軽です。

気をつけること

  • bloginfo()(get_ が付かない)は、取り出した値をそのまま画面に出す関数です。値を変数に入れたいときは get_bloginfo() を使います。
  • URL は get_bloginfo( 'url' ) より、home_url() のほうがよく使われます。パスを付けられて、http と https の切り替えもできるためです。
  • HTML に出すときは、esc_html() を通します。esc_html() は、もう「&amp;」になっている文字をもう一度変えないので、二重に変わる心配はありません(作業環境で確かめた結果)。

関係する関数

逆引きリファレンスの一覧へ

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP