記事本文やテキストウィジェットでPHPを使うショートコード

本文内でPHPを使ったりできるといいな、とずっと昔「Exec-PHP」を紹介したことがありましたが、プラグイン自体も開発は終了しており、セキュリティ的にも良くない、という記事を以前読みました。
その後、プラグインを使わなくとも、そのようなことがショートコードで可能であることを覚えたのですが、とても便利ですので遅ればせながら紹介したいと思います。
比較的よく利用しそうなショートコードを3つご紹介。
本文エリアやテキストウィジェットで利用できます。
- (1)ホームURLを呼び出す
- (2)テンプレートURLを呼び出す
- (3)今日の日付を呼び出す
使い方
functions.php
ショートコードは、functions.php に追加していきます。
/* ホームURLを呼び出すショートコード */ function shortcode_url() { return get_bloginfo('url'); } add_shortcode('url', 'shortcode_url'); /* テンプレートURLを呼び出すショートコード */ function shortcode_templateurl() { return get_bloginfo('stylesheet_directory'); } add_shortcode('template_url', 'shortcode_templateurl'); /* 本日の日付を呼び出すショートコード */ function shortcode_today() { return date_i18n("Y年n月j日"); } add_shortcode('today_date', 'shortcode_today'); /* 利用する場所 */ add_filter('the_content', 'do_shortcode'); add_filter('get_the_content', 'do_shortcode'); add_filter('widget_text', 'do_shortcode');
子テーマでの注意事項
テンプレートURL(テーマフォルダのURL)は、本来
get_bloginfo('template_url');
で呼び出しますが、子テーマを利用する場合、親テーマのディレクトリが呼び出されてしまいますので、
get_bloginfo('stylesheet_directory');
と書きます。こう書くことで、子テーマのディレクトリが呼び出されます。
本文エリアやテキストウィジェットでの書き方
(1)ホームURLを呼び出す例
リンク先に使用。
<a href="[url]">ホーム</a>
※[]は、全角で書いています。
(2)テンプレートURLを呼び出す例
画像表示に使用。
<img src="[template_url]/images/○○○○.jpg">
※[]は、全角で書いています。
(3)今日の日付を呼び出す例
今日の日付を表示。
<p>今日は[today_date]です。</p>
【出力結果】今日は[today_date]です。
※[]は、全角で書いています。