概要
サーバーに予め用意したフォルダー内のPHPファイルをWorpDpressの記事を開いたときに実行するショートコードを作ります。
ショートコードから、予め用意したフォルダ内の任意のファイルを指定して実行できます。
汎用ショートコードとして使用できます。
それにより何が便利になるかってことですが、
1.WordPressの投稿や固定の記事を動的ページに手軽に作れます。
2.一度このショートコードを作れば動的ページを作るたびにショートコードの定義をするという手間が省けます。
(ファイル名を指定できるからショートコードは使いまわしが出来る)
3.実行したいPHPファイルが必要なページだけ、そのファイルをインクルードするので、WprdPress全体のスピードの劣化を防げる。
大まかな仕様を決める
どのような感じにするかちょっと整理しておきます。
分かりやすいように、この名称は、「ショートコードexe_php」とでもしておきます。
作成するショートコードを決める
今回の仕様を満足させるショートコードを決めます。
単純にこれで良いかと思います。
[ece_php f="実行させるファイル名"]
ショートコードを定義するPHPファイルと格納するフォルダを決める
「scode_exe_php.php」と言うファイルを作り、
ショートコードの定義と任意のphpファイルをrequireさせる関数を書き込みます。
また、WordPressと同じ階層へ「_exe_php」と言うフォルダを作りその中に「scode_exe_php.php」を入れます。
任意のPHPファイルと格納するフォルダを決める
上で作った「_exe_php」フォルダの下に「script」と言うフォルダを作成してその中へ任意のphpファイルを格納するようにします。
「ショートコードexe_php」のソースコード
scode_exe_php.phpのソースコードです。
<?php // ショートコード // exe_php // パラメータ // f="任意のphpファイル名" // // 任意のphpファイルを読み込み実行する関数 function exephp($atts){ extract(shortcode_atts(array( 'f' => '' ), $atts)); // スクリプトを展開 $fname = __DIR__."/script/$f"; if(file_exists($fname)){ require($fname); } else{ $res = "指定のファイルが見つかりません!($fname)"; } return $res; } // ショートコード定義 add_shortcode('exe_php', 'exephp'); ?>
指定された任意のphpファイルが存在するか確認して、
存在すれば require()でその場に任意のphpファイルを展開して実行させます。
存在しなければ、メッセージを表示するだけになります。
■このソースは以下よりダウウンロード出来ます。
この汎用ショートコードexe_phpのソースscode_exe_php.phpは、
Zip形式で圧縮されて「scode_exe_php.zip」として
ダウンロードできます。
「ショートコードexe_php」を実装する
「ショートコードexe_php」をアップロード
先程決めたフォルダ構成でWordPressがインストールされているサーバーへアップロードします。
FTPクライアントソフト等でアップロードします。
以下のページが参考になります。
WordPressへ「ショートコードexe_php」のスクリプトを実装
scode_exe_php.phpファイルをWordPressのheadタグ内で読み込む必要があります。
上記のページを参考に
子テーマのfunction.phpへ
「require_once」を使用して外部ファイルを指定します。
XSERVERの場合、
「/home/サーバーID/ドメイン名/public_html/_exe_php/scode_exe_php.php」になります。
function.phpの編集が終わったら、
忘れずに「ファイルの更新」をクリックしてください。
これでWordPressへ「ショートコードexe_php」のスクリプトを実装は完了しました。
あらかじめ「script]フォルダーへ実行させたいphpファイルをアップロードし、
WordPressの記事内やウィジェットのテキスト枠などからショートコードを使って簡単に呼び出すことが出来ます。
次回は、実際に任意のphpファイルをWordPressの記事から読み込んで、動的ページ作ってみます。