WordPressは優れたCMSですが、投稿ページや固定ページの本文の中で、PHPファイルを読み込むことができません。
これを可能にするプラグインもありますが、セキュリティ上の問題があり、利用しないほうが賢明でしょう。
現在、投稿ページや固定ページでPHPファイルを動かしたい時は、プラグインに変わって、ショートコードの利用が主流となっています。そこで、今回はその導入方法を紹介したいと思います。
ショートコードとは
ショートコードとは、短いコードを記述するだけで、元となるプログラムを呼び出して、簡単に、そして何度でも利用できるようにするWordPressの機能です。
通常、WordPressでは、投稿ページや固定ページの本文にプログラムを直接書き込んでも、エラーとなってしまい動作しません。ところが、このショートコードを利用することによって、本文の中でもプログラムの読み込みが可能になるのです。
ショートコードには、元となるファイル(プログラム)が必要です。ファイルは、functions.phpに置くのが一般的ですが、たくさんの自作ショートコードを扱いたいのであれば、管理しやすいように、次に紹介する方法をオススメします。
自作のショートコードを使えるようにする方法
作業は2ステップだけなので、とっても簡単です。コピペでいけます。
- functions.phpにコードを追記する。
- shortcodeディレクトリを作成する。
① functions.phpにコードを追記
お使いのテーマが、親テーマの場合、functions.phpに次のコードを追記してください。
/*---------------------------------------------------------*/
/* 【親テーマ編】ショートコードを使ってphpファイルを呼び出す */
/*---------------------------------------------------------*/
//【参考】https://bge.jp/wp-shortcode-php_include/
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(get_theme_root() . '/' . get_template() . "/shortcode/$file.php");
return ob_get_clean();
}
add_shortcode('shortcode', 'my_php_Include');
子テーマを利用されているのなら、こちらをfunctions.phpに追記。
/*---------------------------------------------------------*/
/* 【子テーマ編】ショートコードを使ってphpファイルを呼び出す */
/*---------------------------------------------------------*/
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(STYLESHEETPATH . "/shortcode/$file.php");
return ob_get_clean();
}
add_shortcode('shortcode', 'my_php_Include');
② shortcodeディレクトリを作成
次に、style.cssやindex.phpと同じ階層に「shortcode」というディレクトリを作ります。
/ wp-content/ themes/ your-theme/ shortcode
wp-content
∟ themes
∟ your-theme //お使いのテーマ
∟ style.css
∟ index.php
∟ shortcode //新しくディレクトリを作成
これだけで自作ショートコードの準備完了です。
この新しく作ったshortcodeディレクトリの中に、呼び出したいPHPファイルを放り込めば、ショートコードを一行記述するだけで呼び出せるようになります。
wp-content
∟ themes
∟ your-theme //お使いのテーマ
∟ style.css
∟ index.php
∟ shortcode //新しくディレクトリを作成
∟ your.php //動かしたいプログラム
使い方
実際の使い方です。
PHPファイルに動作させたいプログラムを書き込んだら、挿入したい場所に次のようにショートコードを記述すればOKです。
‘your’ の部分を、あなたが作ったファイル名に書き換えるだけで使えます。
[shortcode file='your']
もしも、PHPファイル名が、your.php なら ‘your’ に、example.phpであれば、’example’と書き換えてください。.phpの部分は必要ありません。
まとめと次回の予告
いかがでしたか?いまいちピンと来ないかもしれませんが、次回は、
という内容で、実際にサンプルコードを掲載します。
紹介しているのは、こんな動作をするPHPファイルを呼び出すショートコード集になります。
- ページの最終更新日を表示するPHP
- 公開した投稿記事数を表示するPHP
- 公開した全記事の全文字数を合計して表示するPHP
- 基準となる日から今日までの経過日数を表示するPHP
実装すれば、使い方をより理解できるでしょうし、これらを応用した、新しいアイデアのヒントになるかもしれません。ぜひご覧ください。
以上、「投稿ページでPHPを動かしたいならショートコードを使おう」でした。