WordPressでURLを取得する関数あれこれをまとめた。

WordPressにはURLを取得するための様々な関数が用意されてます。

毎回Google先生に聞いててウキーってなったのでまとめておくことにしました。

基本的にアホなので、あれ?plugin_url()だっけ?plugins_url()だった?みたいな感じでなかなか覚えられないんです…。

WordPressでURLを取得するための関数あれこれ

関数名 出力例 メモ
home_url() http://example.com
site_url() http://example.com または http://example.com/wp など
get_template_directory_uri() http://example.com/wp-content/themes/twentyeleven 親テーマ
get_stylesheet_directory_uri() http://example.com/wp-content/themes/childtheme 子テーマ
get_stylesheet_uri() http://example.com/wp-content/themes/childtheme/style.css 子テーマのstyle.css
admin_url() http://example.com/wp-admin
includes_url() http://example.com/wp-includes
content_url() http://example.com/wp-content
plugins_url() http://example.com/wp-content/plugins
get_theme_root_uri() http://example.com/wp-content/themes
wp_upload_dir() 下記参照

wp_upload_dir()の出力について

なぜかアップロード先のURLは配列を取得してゴニョゴニョする必要がある。

Array (
  [path] => C:\path\to\wordpress\wp-content\uploads\2010\05
  [url] => http://example.com/wp-content/uploads/2010/05
  [subdir] => /2010/05
  [basedir] => C:\path\to\wordpress\wp-content\uploads
  [baseurl] => http://example.com/wp-content/uploads
  [error] =>
)

get_option(‘xxx’)とかbloginfo(‘xxx’)はどうよ?

get_option()やbloginfo()でも上記と同じ結果を得る方法がありますが、それらは非推奨です。(引数によっては非推奨ではないところがめっちゃややっこしい。)

この記事でリストアップした関数と同じ結果が得られるからといってget_option(‘home_url’)とか使うと、フィルターフックの有無によって、思わぬ結果を招くことがあります。

このあたりは、theme-checkプラグインとかplugin-checkプラグインを使って潰しておきましょう。