WordPressのショートコードでphpファイルを読み込んで実行する方法

通常、Wordpressでは投稿や固定ページ、ウィジェットなどにphpコードを書き込んで実行することはできません。
しかし、ショートコードを使う事でphpファイルを読み込むことができます。

ショートコードでphpを読み込んで実行する方法としては、3つ方法があります。

  1. funcitons.phpに実行したいphpコードを書いて、同時にショートコードの設定もする
  2. ショートコードを1つのphpファイルにまとめ、funcitons.phpでincludeする
  3. phpコード毎にファイルとして分けておき、funcitons.phpでショートコードの設定をする

それぞれ説明していきます。

  1. funcitons.phpに実行したいphpコードを書いて同時にショートコードの設定もする
  2. ショートコードを1つのphpファイルにまとめ、funcitons.phpでincludeする
  3. phpコード毎にファイルとして分けておき、funcitons.phpでショートコードの設定をする
  4. まとめ

funcitons.phpに実行したいphpコードを書いて同時にショートコードの設定もする

phpコードをfuncitons.phpに書いてしまう方法です。
数が少ないうちはいいですが、コードが増えれば増えるほど管理が面倒になるのであまりおすすめしません。

  1. funcitons.phpにphpコードとショートコードの設定をする
  2. エディタ内任意の場所にショートコードを使用する

funcitons.php

function hello() {
	return "Hello World";
}
add_shortcode('shortcode', 'hello');

「Hello World」と表示させることができるphpコードをショートコード[shortcode]でエディタ内のお好きな箇所に出力できます。
例は超簡単なphpコードですが、実際のphpコードはもっとずっと長くなると思います。

funcitons.phpには他にも書くことがありますし、大量のコードがあると管理が面倒です。
この手法は記載するphpコードの数が少なく、今後も増えないと確定している場合の限定使用とすることをおすすめします。

ショートコードを1つのphpファイルにまとめ、funcitons.phpでincludeする

ショートコード化したいphpコードだけを書いたphpファイルを作成し、functions.phpでショートコードの設定をする方法です。
phpコードの数がそこまで多くないのならこの手法で十分かと思います。

  1. ショートコード化したいphpコードだけを書いたphpファイル(例:shortcodes.php)を作成する
  2. 同ファイルでショートコードの設定をする
  3. funcitons.phpでincludeする
  4. エディタ内任意の場所にショートコードを使用する

shortcodes.php

//ショートコード[shortcode1]
function hello1() {
	return "Hello World";
}
add_shortcode('shortcode1', 'hello1');

//ショートコード[shortcode2]
function hello2() {
	return "こんにちは世界";
}
add_shortcode('shortcode2', 'hello2');

funcitons.php

include('shortcodes.php');

あとは、作成したショートコード([shortcode1]、[shortcode2])をエディタ内のお好きな箇所に挿入するだけです。
phpコードが1つのファイルにまとまっているので、1つ目の方法に比べて管理が楽です。

phpコード毎にファイルとして分けておき、funcitons.phpでショートコードの設定をする

phpコード毎に外部ファイルとして分けて作成しておき、ショートコードでファイル名を指定して読み込めるようする方法です。
この手法を使うと、phpプログラムだけでなく静的コンテンツもショートコードで呼び出しやすくなります。

そのため、お問い合わせコンテンツやキャンペーンコンテンツなどの共通コンテンツを任意の場所に入れたいときに大変便利です。
※LPでよくある(例:コンテンツごとにお問い合わせへの誘導がある)やつです。

共通コンテンツを各ページ毎に書いていたら修正が大変ですので、容赦なく外部ファイルにしましょう。

  1. phpファイル(例:shortcodes1.php、shortcodes2.php)を作成する
  2. functions.phpでショートコードの設定をする
  3. エディタ内任意の場所で、ショートコード上でファイル名を指定して呼び出す

shortcodes1.php

<?php
	echo "Hello World";
?>

shortcodes2.php

<p>こんにちは世界</p>

funcitons.php

//ショートコードを使ったphpファイルの呼び出し
function call_php_Include($params = array()) {
	extract(shortcode_atts(array('file' => 'default'), $params));
	ob_start();
	include(STYLESHEETPATH . "/$file.php");
	return ob_get_clean();
}
add_shortcode('callphp', 'call_php_Include');

あとは、作成したショートコードをエディタ内のお好きな箇所に挿入するだけです。

ショートコード名+ファイル名を指定する形で使用します。

[callphp file='shortcodes1']
[callphp file='shortcodes2']

※file='ここ'「ここ」の部分にファイル名指定(拡張子.phpはつけません)

この方法は、WordPressをLP的な使い方をするときに大活躍します。コンテンツ入れ込みも修正も圧倒的に楽になります。おすすめです。

まとめ

通常、phpコードを書き込んで実行することができないWordPressで、ショートコードを使ってphpコードを実行する方法を3つご紹介しました。

  1. funcitons.phpに実行したいphpコードを書いて、同時にショートコードの設定もする
  2. ショートコードを1つのphpファイルにまとめ、funcitons.phpでincludeする
  3. phpコード毎にファイルとして分けておき、funcitons.phpでショートコードの設定をする

状況に応じて使い分けてください。

MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。


アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!

やまライダーのサイトへ

書いた人:やまライダー(嫁)

Web屋さんで8時間フルタイム勤務をしている、いわゆるワーキングマザー。
夫婦共働きで、ムスメ氏を育てています。
主に資産運用にかかわるお金の話、ムスメ氏を育てていく上での子育ての話、そしてたまにお仕事関連の記事を書いていく予定。
プロフィールを見る