誰もが秘めている「才能」を開花し大好きなことを実現しよう Let's Share and Creation!

【PHPプラグインやめました】WordPressのショートコードでPHPファイルを読み込み表示させる方法

Photo by Luca Bravo on Unsplash

Photo by Luca Bravo on Unsplash

Advertisement

 

これまでWordpressのウィジェットなどでPHPプログラムを表示する際にプラグインを使用してきましたが、セキュリティの問題などもありプラグインの使用をやめることにしてショートコードを使ってPHPを展開することにしました

 

Advertisement

やっぱりphpプラグイン内のeval関数は危険

2018年現在最新のWordpressプラグインにPHP Everywhereというのがありますが、このプラグインにもEval関数が使われています。

 

Eval関数とは指定された文字列をスクリプトとして実行する関数で、セキュリティ問題としてこの関数に対し不正なコードを引き渡すというものがあります。

システムに対する攻撃が可能ということなので、このプログラムは極力使用しないほうが良いです。

 

WordPressではショートコードを使って各種プログラムを呼び出す機能があります。

ショートコードとはあらかじめ用意しておいたプログラムのテンプレートを簡単に呼び出す方法です。

これを使って投稿ページや固定ページ、そしてサイドバーなどのウィジェットでPHPを展開することが可能になります。

 

 

PHPファイルをショートコードで呼び出す準備

 

まず、functions.phpのバックアップを取り以下のコードを追記します。

 

当サイトは子テーマなので10行目のinclude内はSTYLESHEETPATHとなります。

親テーマの場合はget_theme_root() . ‘/’ . get_template()となります。

また、作成した各phpファイルをディレクトリ内に管理するので当サイトはcodeというディレクトリを作成し、10行目のPHPファイルを呼び出す部分にディレクトリ名”/code”を追記しています。

 

function名はshort_php、呼び出し名はphpcodeとしています。この名前は各自わかりやすい名称にしてください。

 

7行目と最終行内の引数2番目にfunction名を、最終行の引数1番目に呼び出し名を追記します。

 

続いてphpファイルを展開したい場所に以下のショートコードを追記します。

 

サンプルではcode内にtest.phpというファイルを用意して以下の内容を表示させますのでショートコードのファイル名には拡張子を除くファイル名のみ記述します。

 

ウィジェットのテキストにショートコードを記述して表示してみましょう。

指定した場所にphpファイルの内容が表示されていれば成功です。

 

当サイトのWordpressテーマLIQUID PRESS ではサイドバーでもショートコードが通常表示されますが、もしサイドバーにショートコードが展開されない場合はfunctions.phpに以下のコードを追記してみてください。

 

このテクニックを使えばプラグインなしでウィジェット内などのお好きな場所でPHPコードを展開することができるようになります。

 

参考: WordPress投稿ページにPHP利用→ショートコードを使おう! | vdeep

Advertisement
by
WEB作成とプログラマーをやってます。 生まれも育ちも "THE 後者 アスペルガー" です!
心屋仁之助さんの前者後者論を基に誰もが自分を最大限に発揮できる世界を日々実践しています。
プロフィール詳細はこちらから
Follow