投稿や固定ページでPHPを実行する


2016年9月6日

はちです。2015年も終わりですね。
今年1年は色々な取り組みをしましたが、特に多かったのがやっぱりWordpressに触る機会が多かったと思います。

WordPressの投稿・固定ページでPHPを実行するには

WordPressをお使いの方はなんとなくわかるかと思いますが、
Wordpressの投稿や固定ページ機能の中、いわゆる「記事」の中では直接PHPを書いて実行することが出来ません。

ではどうやって実行するか?

普段、「投稿」機能を使用しているときは、あまりページ内でPHPを独自で書いて…というのをやりたいと思うシーンは少ないように思います。
しかし、「固定ページ」機能を使っている際は、結構使いたいと思うシーンがあります。

例えば
・時限式のバナーを設置したい
・ページ内で独自にアンケートをしてみたい
などです。

では、そういう時はどうすれば良いでしょうか。

その1:Exec-PHP←非推奨

「Exec-PHP」というプラグインがあります。
このプラグインを導入することで、任意のコードをベタ書きして簡単に実行することが出来てしまいます。
一見、ものすごく便利に見えますがExec-PHPは、PHPのeval()という関数を使用して、コードを実行します。
このeval()という関数はPHPのリファレンスでも、危険なコードとして記載されております。
リファレンス→http://php.net/manual/ja/function.eval.php

また、プラグインの最終更新日がカナリ古いこともあり、導入はしないほうが懸命です。

その2:ショートコードを使う←推奨

代わりの手段というか、現在の正式な手段として「ショートコード」というものがあります。
いきなり「ショートコード」と言われても、ピンと来ないと思いますが、
「ショートコード」とは、Wordpressで使用中のテンプレートフォルダ内にある「functions.php」に関数を記述し、
「投稿記事」や「固定ページ」内の表示したい箇所に[ショートコード名]を記述することで、
「functions.php」内で設定しておいた関数を呼び出すことができる機能です。

ショートコードのサンプル

function.phpに下記のサンプルを追記します。

add_shortcode()の1つ目のパラメータは、ショートコードで実行する時の名前
2つ目のパラメータは、実際に定義している関数名 となります。

記事内に

[jisaku]と記載することで、上記のショートコードに書いた処理を実行することが出来ます。

実装してみました。

[getTime]

↓実装サンプル↓

さいごに

地味かもしれませんがカナリ役に立つので、PHPを使ってあれこれしたい際はショートコードを使って行くことをお薦めします。
functions.php