WordPressでファイル指定して実行する汎用ショートコード

概要

サーバーに予め用意したフォルダー内の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クライアントソフト等でアップロードします。
以下のページが参考になります。

FFFTPの使い方
FTPクライアントソフトの定番である「FFFTP」の使い方を解説します。 実際の例として、このブログ、WordPressで出来ていますが、 ファイルはXSERVERと言うレンタルサーバー上にあります。 そのサーバーの「.htacc...

WordPressへ「ショートコードexe_php」のスクリプトを実装

scode_exe_php.phpファイルをWordPressのheadタグ内で読み込む必要があります。

WordPress内でPHPをどこでも実行!ショートコードの利用
ショートコードとは ショートコードとは、WordPressから予め用意しておいたPHP関数をショートカットの様に簡単に実行することが出来る機能です。 ショートコーを使える場所は、投稿記事内、固定ページ内、ウィジェットのテキスト記述で...

上記のページを参考に
子テーマの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の記事から読み込んで、動的ページ作ってみます。