get_bloginfo(), bloginfo() のパラメータとしてプリセットされている文字列を一覧にしてみました。調べたWordPressのバージョンは3.2.1 です。こうして眺めてみると、公開ページの出力に必要なデータに絞っていることがよくわかります。

bloginfo( $show ) は get_bloginfo( $show, ‘display’ ) で取得した値を echo するラッパー関数の類。

単に get_option() を呼び出しているものは意外と少なかった印象。

$show (第1引数) 処理内容 フィルタ
(※1)
関数 パラメータ その他
$show 関数 パラメータ その他 フィルタ
home(非推奨※2) home_url 無し 無し bloginfo_url
siteurl(非推奨※2) home_url 無し 無し bloginfo_url
+url(※5) home_url 無し 無し bloginfo_url
+wpurl(※5) site_url 無し 無し bloginfo_url
+description get_option "blogdescription" 無し bloginfo
+rdf_url "rdf" 無し bloginfo_url
+rss_url "rss" 無し bloginfo_url
+rss2_url "rss2" 無し bloginfo_url
+atom_url "atom" 無し bloginfo_url
+comments_atom_url "comments_atom" 無し bloginfo_url
+comments_rss2_url "comments_rss2" 無し bloginfo_url
+pingback_url get_option "siteurl" 末尾に"/xmlrpc.php"を付加 bloginfo_url
+stylesheet_url get_stylesheet_uri (※3) 無し 無し bloginfo_url
+stylesheet_directory (※5) get_stylesheet_directory_uri 無し 無し bloginfo_url
+template_directory (※5) get_template_directory_uri 無し "template_url"と完全に同じ bloginfo_url
+template_url (※5) get_template_directory_uri (※3) 無し "template_directory"と完全に同じ bloginfo_url
+admin_email get_option "admin_email" 無し bloginfo
+charset get_option "blog_charset" 設定されていない場合 "UTF-8" に上書き bloginfo
+html_type get_option "html_type" 無し bloginfo
+version 無し 無し グローバル変数 $wp_version をセット bloginfo
+language get_locale 無し アンダースコア(_)をハイフン(-)に変換 bloginfo
+text_direction is_rtl 無し 関数が存在して戻り値が真の場合 "rtl" を、偽の場合 "ltr" を返す
is_rtl関数が存在しない場合は "ltr"を返す
bloginfo
+name (※4)および、他に該当しなかった全て get_option "blogname" 無し bloginfo
  • (※1) bloginfo, または get_bloginfo の第2引数に 'display' を渡した場合のみ。
  • (※2) 替わりに "url" を使用します。
  • (※3) 内部で呼び出している関数の末尾は "I"ですが、キーワードの末尾は"L"。
  • (※4) switch 構文の default でもあるため、他に該当しなかった場合もこの処理が行われる。
  • (※5) いずれも末尾に'/'などのセパレータはつかない。

get_bloginfo() のフィルタ処理

get_bloginfo() の第2引数に ‘display’ を渡すことでフィルタが適用されます。( bloginfo()は常に適用されます。 )

適用されるフィルタフックは’bloginfo_url’ もしくは ‘bloginfo’ のいずれか一方で、この振り分けを $show に含まれる文字列で判定しているのがWordPressらしいところでしょうか。

具体的には、$show パラメータに ‘url’, ‘directory’, ‘home’ のいずれかが含まれている場合には ‘bloginfo_url’ フックが、それ以外の場合は ‘bloginfo’ フックが適用されます。

デフォルトでは’bloginfo’フックの場合において wptexturize(), convert_chars(), esc_html()の順にフィルタ用関数を通されます。(cf./wp-includes/default-filters.php [Format strings for display.])
‘bloginfo_url’フックの場合はデフォルトでは何も処理をしないようです。

※ちなみに、get_bloginfo() の第2引数は今のところ ‘display’のみが有効。なお、Codex には大文字イニシャルで ‘Display’ とありますが実際は case-sensitive で小文字が正しいです。

[参考ページ]