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
タイトルの「&」は「&」で返ってくる
サイトのタイトルに「&」を入れると、WordPress は保存するときに「&」の形に変えます。そのため、get_bloginfo( 'name' ) の値も「&」のままです。HTML の中に出すときはこれで正しく「&」と表示されますが、メールの件名や、HTML でない場所にそのまま使うと「&」と見えてしまいます。
<?php // 「設定」→「一般」でタイトルを Nail & Beauty にしたとき echo get_option( 'blogname' ); // Nail & Beauty(保存されている値) echo get_bloginfo( 'name' ); // Nail & Beauty echo get_bloginfo( 'name', 'display' ); // Nail & 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()は、もう「&」になっている文字をもう一度変えないので、二重に変わる心配はありません(作業環境で確かめた結果)。


