WordPress

WordPressショートコード自作 投稿や固定ページ内でPHPを実行する

WEBAPIを利用して情報を取得し、ページを作成したり、記事に埋め込んでみたりしています

PHPで、WEBAPIを呼び出して情報取得するわけですが、Wordpressの投稿ページや固定ページの中に、取得した情報を埋め込むようにしようと思います

ショートコードを利用します

そのショートコードの作り方を書いておきます

WordPressショートコードを自作して記事内でPHP実行

PHPでページを作成するようにしたのですけれども、ワードプレスの個別ページや投稿ページに組み込めむ方法を調べました

ショートコードを使うと可能です

ワードプレスで使用中のテンプレートフォルダ内にある「functions.php」に関数を記述して、「投稿記事」や「固定ページ」内の表示したい箇所に[ショートコード名]を記述することで、「functions.php」内で設定しておいた関数を呼び出すことができる

出典 altplus

WordPressのテーマで利用する関数群がテーマのフォルダにあるfunction.phpに記述されているわけですが、そのfunction.php内に設定することで、自分で作成した関数を呼び出すことができます

WordPressショートコード自作記述方法

function jisaku_shortcode() {
return “自作ショートコード表示テスト”;
}
add_shortcode(‘jisaku’, ‘jisaku_shortcode’);

ショートコードの関数を作成しておいて、この場合だと記事内に [jisaku] と記述してやると、実行することができます

jisaku_shortcode()という自作の関数を用意しておいて、add_shortcode()で、jisakuというショートコード名でjisaku_shortcode()という関数を呼び出すという関係を定義するわけです

WordPress自作PHPをショートコードで呼び出す方法

さらに、オリジナルのphpを作って、ワードプレスの使用中のテーマのフォルダにそのオリジナルphpをアップロードしておいて、functions.phpに下記のように記述してやると

function short_php($params = array()) {
extract(shortcode_atts(array(
‘file’ => ‘default’
), $params));
ob_start();
include(get_theme_root() . ‘/’ . get_template() . “/$file.php”);
return ob_get_clean();
}
add_shortcode(‘original_php’, ‘short_php’);

出典 vdeek

記事内にショートコードで [original_php file=’phpファイル名’]と書いておくと、phpファイル名のところに書いたphpが実行されます

 

上記の方法で、ワードプレスの記事内から、phpを呼び出すようにすると、ワードプレスのテンプレートを使って、phpを埋め込んだ記事ページを作成することができます

WordPressのテーマを利用したページの中に、オリジナルPHPで生成した記事を挿入することができますので、固定ページや投稿ページの記事内にPHPで作成する記事を挿入することができます

WordPressショートコードでパラメータをPHPに渡す方法

さらに、自作ショートコードで組み込んだPHPにパラメータを渡す方法です

これもわりと簡単な記述で可能です

記事投稿のページ内で、WebAPIからの取得データを表示するphpをショートコードを埋め込んで実行し、取得結果を表示するようなときに、WebAPIに渡す検索クエリーなどのデータを関数に渡します

渡し方は、記事のURLの後ろにパラメータをくっつける方法や、記事タイトルを検索クエリーにする方法など記事の外から渡す方法もいくつかあるのですが、ショートコード内にパラメータを記述することで、自作のオリジナルphpに渡し関数内で利用するパラメータを記事内に記述することができます

これで、検索クエリーなどの引数となるパラメータを記事内に記述することができます

ショートコードを定義するコードを上述しましたが、パラメータの記述を付け加えます

下記のようにshort_phpのfunctionの中にパラメータを記述し、初期値を入れておいて

function short_php($params = array()) {
extract(shortcode_atts(array(
‘file’ => ‘default’,
‘query’ => ”,
‘sort’ => 0,
), $params));
ob_start();
include(get_theme_root() . ‘/’ . get_template() . “/$file.php”);
return ob_get_clean();
}
add_shortcode(‘original_php’, ‘short_php’);

そして、ショートコードでは

[original_php file=’phpファイル名’ query=’温泉’ sort=0]

というように記述します

パラメータとして、queryとsortを用意して、ショートコードにパラメータの値を記述することで、phpに検索クエリーqueryとソート順sortを記事内からphp内の関数に渡しています

これで、パラメータを渡された’phpファイル名’ の関数の中で、パラメータ(query=’温泉’ sort=0)を利用して処理して作成された記事を埋め込むことができます

 

ショートコードを使って埋め込んだ例

ショートコードを使った埋め込みの実例です

記事内に記述してあるのはショートコードですが、WebAPIを使って取得した結果が表示されます

この例の場合、ショートコードに入れてあるパラメータは検索クエリーの’横浜 中華’とレストランのIDになっています

レストランのIDを指定してぐるなびAPIで指定の店のレストラン情報を取得しています

オイシイグルメ