投稿・固定ページの記事途中で動的制御する
WordPressの投稿や固定ページの中で動的に処理を実行させたいときはないでしょうか。
ここでは投稿・固定ページでPHPを実行させる方法を紹介します。
なぜ投稿・固定ページで動的制御をするのか
と、本題に入る前に、なぜ利用したいのか目的を明確にしましょう。
ブログの用途によりますが、以下のようなケースではないでしょうか。
- 記事の一箇所で、PCとスマートフォンとで表示したいコンテンツを分けたい。
- 記事の途中にアフィリエイトのバナーを設置していて、それをアクセスする時間ごとに出しわけをしたい。
- PHPの関数紹介をしていて、記事の中で実行させたい。
いずれも、header.php、index.php、sidebar.phpといったテンプレートファイルに記述して表示されてしまえばいいというものではないですね。
確かに利用したくなるシーンはありそうなので、実行方法について触れたいと思います。
実行方法
調べてみたら以下の方法がありました。
- プラグイン「Exec-PHP」を利用する。
- ショートコードを利用する
- 投稿記事の中の文字列を置換する
それでは、それぞれの方法を説明したいと思います。
1,プラグイン「Exec-PHP」を利用する。
こちらは、以前紹介した、「Exec-PHP」を使うことで記事の中でJavaScript、PHPを実行させることが出来ます。
詳しくは、WordPressの固定ページでPHPを実行するを参考ください。
2,ショートコードを利用する
独自でショートコードを作成する方法ですね。
例えば、日付と曜日をつなげて表示する場合は、
function phpAction() { $date= "2014/11/19"; $week = "(水)"; $now = $date . $week; return $now; } add_shortcode(‘hidukeyoubi’, ‘phpAction’);
のような具合で、実行したいPHPを関数化してショートコードとして呼び出せるようにします。
過去にこのサイトでも紹介していますので、WordPress ショートコードの使い方を参考にしてください。
3,投稿記事の中の文字列を置換する
テンプレートファイル(index.php、single.php)、追加したい処理を記述し実行する方法です。
過去に以下サンプルソースを紹介しているので、記事の内容にPHPで処理を加えて表示したいを参考にしてください。
おまけ
投稿記事の文中での表示は無理ですが、テンプレートファイルに
<?php if (get_the_ID() == 'XXXX'): ?> <p>記事IDがXXXXのときだけ表示されます。</p> <?php else: ?> <p>それ以外のときに表示されます。</p> <?php endif; ?>
こんな感じで、記述すれば、特定のページのみに表示させることが可能です。
こちらも参考までに紹介させていただきました。
コメント一覧
コメントはありません