WordPress の関連 URL、パスを呼び出す関数、定数色々

WordPress のテーマやプラグインを開発していると、サイトの URL やテーマの URL、プラグインのパスを呼び出す必要性が多々あるが、WordPress にはこれらの URL やパスを簡単に呼び出せる関数が用意されている。ただ、古いテーマやプラグインだと最新の WordPress では推奨されていない方法がまだそのまま使われていることがよくあり、慣例的にその方法を踏襲している場合も結構あると思う。

そこでここでは、推奨される WordPress の関連 URL、パスを呼び出す関数をまとめてみたいと思う。

home_url() と site_url()

結構紛らわしいのが、WordPress の設定-一般にある「WordPress アドレス (URL)」と「サイトアドレス (URL)」だと思う。早い話、前者が WordPress をインストールしたディレクトリを含む URL で、後者が実際にサイトにアクセスする際の URL となる。

より頻繁に呼び出す必要があるのが「サイトアドレス (URL)」の実際のサイトにアクセスする際の URL だろう。推奨される関数は、home_url() だ。

echo home_url();  // http://www.wptips.jp

このままだと、末尾に/(スラッシュ)がつかないので、引数に/(スラッシュ)を追加させてやるとよい。

echo home_url('/');  // http://www.wptips.jp/

一方の「WordPress アドレス (URL)」を呼び出す関数は、site_url() だ。

echo site_url();  // http://www.wptips.jp/wp
echo site_url('/');  // http://www.wptips.jp/wp/

以前、紛らわしい関数とオプションについてでも書いたが、この2つの名称が本当に紛らわしい。

サイトアドレスなのに、home_url()
WordPressアドレスなのに、site_url()

ついてれこにしてしまいそうだが、基本、home_url() を使用する、と覚えておけばよいだろう。

ちなみに、以下の通り、get_bloginfo() や get_option() を使用した呼び出し方もあるが、https の認識やフィルターフックも用意されている、home_url() や site_url() を使用した方がよいだろう。ただ、home_url() や site_url() が、WordPress 3.0 からの関数なので、念のため。

// サイトアドレス (URL)
echo get_bloginfo(‘url’);
echo get_option('home');

// WordPress アドレス (URL)
echo get_bloginfo(‘wpurl’)
echo get_option('siteurl')

ABSPATH は、末尾に /(スラッシュ)がつく

よく使う定数に、ABSPATH がある。これはWordPressのインストールされているルートディレクトリを返す定数だが、他の関数や定数と違って末尾に /(スラッシュ)がつくことに注意したい。

get_template_directory_uri() と get_stylesheet_directory_uri()

テーマディレクトリの URI を呼び出す関数は、get_template_directory_uri() と get_stylesheet_directory_uri() になる。古いテーマなどでは、wp-content/themes/name/ などと直接書いてある場合もあるが、環境によっては適合しないので、これらの関数を使うべきだろう。

これら2つはどちらも似たような関数だが、子テーマを使用する場合に注意が必要となる。簡単に言うと、親テーマのディレクトリの URIを呼び出すのが、get_template_directory_uri() で、子テーマのディレクトリの URI を呼び出すのが、get_stylesheet_directory_uri() になる。子テーマを使っていない場合はどちらも同じになる。

echo get_template_directory_uri();  // http://www.wptips.jp/wp-content/themes/parent
echo get_stylesheet_directory_uri();  // http://www.wptips.jp/wp-content/themes/child

ちなみに、パスを呼び出す関数は、get_template_directory() と get_stylesheet_directory() になる。どちらかというと、定数を使用する場合も多いかもしれない。いずれも末尾に/(スラッシュ)はつかない。

// 親テーマのディレクトリのパス
// /var/www/html/wp-cotent/themes/parent
echo TEMPLATEPATH;
echo get_template_directory();

// 子テーマのディレクトリのパス
// /var/www/html/wp-cotent/themes/child
echo STYLESHEETPATH;
echo get_stylesheet_directory();

プラグインディレクトリとプラグイン URL

まずプラグインのディレクトリや URL を指定する定数を見てみよう。

echo WP_CONTENT_DIR;  // /var/www/html/wp-content
echo WP_CONTENT_URL;  // http://www.wptips.jp/wp-content
echo WP_PLUGIN_DIR;  // /var/www/html/wp-content/plugins
echo WP_PLUGIN_URL;  // http://www.wptips.jp/wp-content/plugins

パスの呼び出しに、WP_CONTENT_DIR や WP_PLUGIN_DIR を使用するのは問題なさそうだが、プラグインの URL の呼び出しに WP_PLUGIN_URL を使用するのは、SSL 環境下では問題があるようだ。そのため、プラグインの URL の呼び出しには、plugins_url() という関数を使用した方がよさそうだ。

echo plugins_url(); // http://www.wptips.jp/wp-content/plugins

ちなみに、plugins_url() 関数には2つ引数をつけることができる。

<?php plugins_url( $path, $plugin ); ?> 

以下のように指定することで、プラグインファイル内にあるファイルを呼び出したりできる。

echo '<img src="' .plugins_url( 'images/wordpress.png' , __FILE__ ). '" > ';

まとめ

今回の記事をまとめると、WordPress のテーマやプラグインの開発で覚えておきたい関数と定数は以下の通り、ということになる。これらの関数、定数を迷いなく使えるようにしたい。

  • home_url()
  • site_url()
  • ABSPATH
  • get_template_directory_uri()
  • get_stylesheet_directory_uri()
  • TEMPLATEPATH
  • STYLESHEETPATH
  • plugins_url()

詳しくは、英語のCODEXを見るとよいだろう。

«
»