★★★ たった "1日" でできるWordPressブログの作り方講座 ★★★ はじめてみる

WordPress個別ページにPHP埋め込み!PHP Everywhereの使い方&注意点

普通のWordPressユーザーなら、PHPなんてまず意識しません。そういうのを全く意識せずに使えるのがWPの売りなので

でも中級者~上級者になると、PHPを埋め込みしたい場面 もあるはずです。

そんな時に便利だったのが PHP Everywhere というプラグイン

文字通り、個別の投稿ページのどこにでもPHPが埋め込める という優れものです。このプラグインの使い方とか注意点について紹介・・・

PHP Everywhereのインスト―ル

まずはインストールしないと使えないので、そこから

メニューから「プラグイン」ー>「新規追加」を開き、
検索欄から「php everywhere」と検索すれば見つかるはずです。

このプラグイン

PHP Everywhere - 各投稿ページにPHPを埋め込めるプラグイン

これをインストールして有効化すれば、PHP埋め込みができるようになります。

あるいは次のプラグインページから直ダウンロードも可能

ページURLhttps://ja.wordpress.org/plugins/php-everywhere/

とりあえずインストール&有効化しておきます。

個別ページにPHPを埋め込む基本手順

自分もそうなんですが、
始めてこのプラグインを使うと、埋め込み手順が少し分かりにくいです。

 ↓ 箇条書きするとこういう手順

  1. PHP 埋め込みする投稿編集ページを開く
  2. PHP Everywhereのボックスを探す
  3. その中にPHPスクリプトを記入
  4. 投稿本文にショートコード挿入

大まかにいうと、こういう埋め込み方

たとえばPHPから "Hello PHP!" と投稿ページに表示したいなら、次みたいにできます。

1.まず投稿内から PHP Everywhere ボックスを見つける

サイドバーにこういうのがあるはず

まず投稿編集画面のサイドバーから「PHP Everywhere」の入力ボックスを見つける

2.このボックスにPHPスクリプトを入力

必ず <??> でスクリプトを囲むこと

投稿ページに埋め込みたいPHPスクリプトを入力

3.投稿内に [php_everywhere] のショートコード挿入

そのあとPHPスクリプトを出力するためのショートコードを挿入

あとは投稿を保存して、ページを開いてみてください。

下画像みたいに、PHPから出力したメッセージが表示されてれば成功 です。

"Hello PHP!!" がスクリプト出力した部分

これで個別の投稿ページでもPHPが使えるようになりました。

  • 動的にページ内容を変えたり
  • DBからデータを取ってきたり、
  • ファイルから読み込みたんだり、

そういうjavascript(jQuery)でできないことをしたいとき、PHP Everywhere は重宝するかもしれません(もちろん PHP も WP のことも把握してる上級者向け)

投稿本文内に複数のPHPを埋め込むには...

ココからは PHP Everywhere の応用編

各投稿ページに複数PHPを埋め込む方法についてです。

さっき紹介したショートコード [php_everywhre] だけだと、1つの投稿ページに1つのPHPしか埋め込めません。

でも次のように、複数のPHPスニペットを埋め込む手段もちゃんと用意されてます。

1.例えば異なるスクリプトを埋め込みたい場合、
まず本文内にそれぞれ instance パラメーターを設定

▼ 1つめのスクリプト

[php_everywhere instance="hoge"]

▼ 2つめのスクリプト

[php_everywhere instance="fuga"]

2.あとはPHPボックスで $instance の値で処理を切り替えるだけ

たとえばこういうコード

<?php

switch( $instance ) {
  case 'hoge': {
    /// 処理...
    break;
  }
  case 'fuga': {
    /// また別の処理...
    break;
  }
}

?>

ショートコードに instance パラメーターをつけると $instance がセットされるので、その値に応じて切り替えるという方法で複数スクリプトを埋め込めます。

記事先頭と記事末尾で、違った処理をしたいときとかに便利そう

PHP everywhre を使う時の注意点

ココからは蛇足かもしれないけど、大事なことなので補足です。

PHP Everywhere を使う時は 次の2つ に注意しないといけません。

1.絶対に exit とか die を呼び出さないこと

これはこのプラグインで絶対やってはいけないこと

絶対に exit; とか die; とか呼び出しちゃダメ!

書いてしまうと、 [php_everywhere] を挿入した以降が表示されなくなってしまいます。

例えば危険なコード例

<?php

/// GET引数を取得
$message = @$_GET['message'];
if ( ! isset($message) ) { die; }

/// 渡された内容を表示
echo $message . PHP_EOL;

?>

もし1つでも die; とか exit; が含まれるコードを書いてしまうと、そこでPHPが終了するのでフッターとか記事下の内容は一切表示されなくなってしまいます。

無意識に書いてしまいがちなので、PHP埋め込み時は気を付けましょう (-_-;)

2.グローバルな定数・関数をなるべく定義しないこと

次はグローバルな定数とか関数を定義しないこと

もっと正確にいうなら、
WordPressで定義されてる関数とか定数と被る名前を付けないってことです。

実際、WPではグローバルに使われる関数とか変数が多く用意されてます。

例えば間違って add_shortcode みたいな関数を PHP Everywhere ボックスの中で定義してしまったとしましょう。

ヤバいコード例

<?php

function add_shortcode() {
  /// 何か処理
}

?>

WPに詳しい人は分かってるはずですが、 add_shortcde は既に定義済み

なので次みたいなエラーが出てしまいます。

Fatal error: Cannot redeclare add_shortcode() (previously declared in /home/example/example.com/public_html/wp-includes/shortcodes.php:63) in /home/example/example.com/public_html/wp-content/plugins/php-everywhere/shortcode.php(15) : eval()'d code on line 8

エラーが出たらページ出力も止まってしまうので、要注意!

もし全体でPHPスクリプトを管理したいなら...

ここまでで紹介した PHP Everywhere は投稿に埋め込むためのモノ

もしブログ・サイト全体に埋め込みたいなら、他のプラグインを使ってください。

↓ 用途別にオススメなプラグイン

こういうのもあるので、興味があれば使ってみてください。

特に WidgetLogic と PHP Code Widget については、自分もお世話になってます。

まとめ - 個別のPHP埋め込みに超便利!

ということで、PHP Everywhere の紹介でした。

少し注意しないといけないポイントもあるけど、
色々カスタマイズしたり、個別ページにPHPを埋め込みたいときに便利そうです。

The following two tabs change content below.

フク郎

昔はプログラミングに熱中していたが、ブログとWordPressに興味を持ち始め今はサイト・ブログ作りが生きがい。自分の「好き」をブログに変えたい、情報発信したい人に役立つWordPress術・サイト構築術を発信中。一日一歩楽しんでブログ構築できるように読みやすい&楽しい記事作りを心がけています。Twitterアカウントはこちら ⇒ フク郎@Fukuro-Press