投稿ページでPHPを動かしたいならショートコードを使おう


WordPressは優れたCMSですが、投稿ページや固定ページの本文の中で、PHPファイルを読み込むことができません。

これを可能にするプラグインもありますが、セキュリティ上の問題があり、利用しないほうが賢明でしょう。

現在、投稿ページや固定ページでPHPファイルを動かしたい時は、プラグインに変わって、ショートコードの利用が主流となっています。そこで、今回はその導入方法を紹介したいと思います。

ショートコードとは

ショートコードとは、短いコードを記述するだけで、元となるプログラムを呼び出して、簡単に、そして何度でも利用できるようにするWordPressの機能です。

通常、WordPressでは、投稿ページや固定ページの本文にプログラムを直接書き込んでも、エラーとなってしまい動作しません。ところが、このショートコードを利用することによって、本文の中でもプログラムの読み込みが可能になるのです。

ショートコードには、元となるファイル(プログラム)が必要です。ファイルは、functions.phpに置くのが一般的ですが、たくさんの自作ショートコードを扱いたいのであれば、管理しやすいように、次に紹介する方法をオススメします。

自作のショートコードを使えるようにする方法

作業は2ステップだけなので、とっても簡単です。コピペでいけます。

  1. functions.phpにコードを追記する。
  2. 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

実装すれば、使い方をより理解できるでしょうし、これらを応用した、新しいアイデアのヒントになるかもしれません。ぜひご覧ください。

以上、「投稿ページでPHPを動かしたいならショートコードを使おう」でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です