普通のWordPressユーザーなら、PHPなんてまず意識しません。そういうのを全く意識せずに使えるのがWPの売りなので
でも中級者~上級者になると、PHPを埋め込みしたい場面 もあるはずです。
そんな時に便利だったのが PHP Everywhere というプラグイン
文字通り、個別の投稿ページのどこにでもPHPが埋め込める という優れものです。このプラグインの使い方とか注意点について紹介・・・
目次
PHP Everywhereのインスト―ル
まずはインストールしないと使えないので、そこから
メニューから「プラグイン」ー>「新規追加」を開き、
検索欄から「php everywhere」と検索すれば見つかるはずです。
↓ このプラグイン
これをインストールして有効化すれば、PHP埋め込みができるようになります。
あるいは次のプラグインページから直ダウンロードも可能
ページURL : https://ja.wordpress.org/plugins/php-everywhere/
とりあえずインストール&有効化しておきます。
個別ページにPHPを埋め込む基本手順
自分もそうなんですが、
始めてこのプラグインを使うと、埋め込み手順が少し分かりにくいです。
↓ 箇条書きするとこういう手順
- PHP 埋め込みする投稿編集ページを開く
- PHP Everywhereのボックスを探す
- その中にPHPスクリプトを記入
- 投稿本文にショートコード挿入
大まかにいうと、こういう埋め込み方
たとえばPHPから "Hello PHP!" と投稿ページに表示したいなら、次みたいにできます。
1.まず投稿内から PHP Everywhere ボックスを見つける
↓ サイドバーにこういうのがあるはず
2.このボックスにPHPスクリプトを入力
↓ 必ず <?
~ ?>
でスクリプトを囲むこと
3.投稿内に [php_everywhere]
のショートコード挿入
あとは投稿を保存して、ページを開いてみてください。
下画像みたいに、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 は投稿に埋め込むためのモノ
もしブログ・サイト全体に埋め込みたいなら、他のプラグインを使ってください。
↓ 用途別にオススメなプラグイン
- Post Snippets
⇒ コードとか文言を再利用できるプラグイン。PHPを含めたショートコードも作成できる
- Widget Logic
⇒ ウィジェットを「PCのみ」とか「スマホのみ」とか条件を指定してウィジェット表示を制御できる。その制御条件にPHPが使用される
- PHP Code Widget
⇒ ウィジェット内にPHPを埋め込んで表示できるプラグイン。PHPでブログをカスタマイズするときに重宝する
こういうのもあるので、興味があれば使ってみてください。
特に WidgetLogic と PHP Code Widget については、自分もお世話になってます。
まとめ - 個別のPHP埋め込みに超便利!
ということで、PHP Everywhere の紹介でした。
少し注意しないといけないポイントもあるけど、
色々カスタマイズしたり、個別ページにPHPを埋め込みたいときに便利そうです。
フク郎
最新記事 by フク郎 (全て見る)
- トレンドブログが資産に?放置でアクセス急増の事例 - 3月 14, 2024