Saba note

醜悪コード Ugly hacks ITものづくり

WPのテーマディレクトリまでのパスを取得する

WPの歴史的な経緯がいろいろあってテーマディレクトリまでのパスの取得の方法は複数あります。必要になる項目は、URLとServer内のフルパスということになるかと思いますが、これがまたややこしい。おそらく以下の例以外にもたくさん関数があるような気がします。

テーマまでのフルパスを取得する

もっとも楽なのが、すでにdefineされているTEMPLATEPATHです。これだけでフルパスを取得できます。何らかのテーマカスタマイズでオリジナルのテンプレートをインクルードするとか画像を呼び出すとか多方面で使えます。

<?php print TEMPLATEPATH; ?>
<?php include(TEMPLATEPATH.'/underbar.php'); ?>
<?php include(TEMPLATEPATH.'/images/sample.png'); ?>

同様にしてどうしてだか、以下の関数でも同じ値を取得できます。内部的にはget_template_directory()をTEMPLATEPATHにdefineしているらしいです。

<?php print get_template_directory(); ?>

いずれにしろ、これらの取得方法ではprint/echoしてくれないのでご注意。
(例)/home/users/www/record/wp-content/themes/record

テーマまでのURLを取得する

httpからテーマまでのパスを取得します。画像なんかの呼び出しは問題がなければこれでもいいのかと思います。

<?php print get_template_directory_uri(); ?>
<?php print get_bloginfo('template_directory'); ?>

(例)http://www.omnioo.com/record/wp-content/themes/record
補足で、テーマディレクトリのベースネームを取得します。何に使うんだか私はよくわかりませんが。

<?php print get_theme_roots(); ?>

(例)/themes

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です