
WordPress の投稿や固定ページで、アップロードフォルダやテンプレートディレクトリの階層を辿るとき、通常は /wordpress/wo-content/uploads/ や /wordpress/wp-content/themes/sample/ と記述します。
テーマファイル内であれば <?php echo get_template_directory_uri(); ?> などのテンプレートタグを使うこともできますが、編集画面でPHPを使うためにはプラグインを導入する必要があります。代表的なプラグインでは[EXEC-php]などが有名ですが、これらのプラグインの導入はセキュリティが甘くなるのでお勧めはできません。
そこで、プラグインを使わずに、WordPressの階層を簡単に辿ることができるように、いくつかのショートコードを作りました。
以下に紹介するコードはすべて、準備段階として WordPress テーマファイル内の[functions.php]に書き込みます。
サイトのURLを出力
add_shortcode('url', 'shortcode_url');
function shortcode_url() {
return get_bloginfo('url');
}
まずはサイトのURLを表示するショートコード。
使い方は、「投稿」や「固定ページ」の編集画面の任意の箇所 [url] と記述するだけです。
テンプレート・ディレクトリへのパス
add_shortcode('template', 'shortcode_tp');
function shortcode_tp() {
return get_template_directory_uri();
}
続いては echo get_template_directory_uri(); の代替となるショートコード。
使い方は [template] です。
アップロード・ディレクトリへのパス
add_shortcode('uploads', 'shortcode_up');
function shortcode_up() {
$upload_dir = wp_upload_dir();
return $upload_dir['baseurl'];
}
WordPress の独自の関数「wp_upload_dir」がファイルをアップロードするディレクトリまでのパスを辿って取得してくれるので、それを利用しています。
使い方は [uploads] になります。
WordPress をインストールしたディレクトリ
add_shortcode('wpurl', 'shortcode_wpurl');
function shortcode_wpurl() {
return get_bloginfo('wpurl');
}
最後は WordPress をインストールしたディレクトリのパスを出力します。
echo get_bloginfo('wpurl'); の代替になります。
使い方は [wpurl] です。
以下のコードは、上記のショートコードを実際に使ったサンプルになります。
<a href="[url]"><img src="[template]/images/sample.png"></a> <a href="[url]"><img src="[uploads]/sample.png"></a> <a href="[url]"><img src="[wpurl]/images/sample.png"></a>
以上。便利なのでぜひお試しください。