投稿記事で外部PHPを引数付きで直接実行できるWP Plagin ”Insert PHP Code Snippet”

この記事は、Wordpressの投稿ページまたは固定ページの記事の中にPHPコードを直接書いて実行できるプラグイン「Insert PHP Code Snippet」、別名「XYZ WP Insert Code Snippet」の紹介をしています。WordpressでPHPコードを直書きする場合、定番プラグインは「Post Snippets」です。無料で使い勝手もよいのですが、使っているテーマによっては「Post Snippets」が使用できないことがわかりました。AFFINGER4や海外製のテーマなどがNGでした。 そうした場合の代替プラグインとして「Insert PHP Code Snippet」を見つけたのでこちらで案内します。現状のテーマSANGOでは動いてます。同様に困っている方がいたら参考にしてください。 そもそもPHPは趣味なんで、基本が抜け落ちているかもしれないのですが、初心者レベルのお仲間のためにはなるのであろうと思いまして記事にすることにした次第です。

そもそもWordPressの記事中でPHPを実行するには?

WordPressはPHPで書かれているにもかかわらず、投稿ページに挿入したPHPコードを実行することはできません。もちろんセキュリティを守るためには仕方がないのですが、なんといっても不便極まりないですよね! 私は、アフィリエイト用のコードを「ヨメレバ」や「Amazon JS」を見習ってPHPで自作しておるのですが、記事内にショートコードを設置してPHPを動かすのに苦労をしました。 ではWordpressの投稿ページや固定ページといった「記事」からPHPを動かすにはどうしたらいいのでしょうか? 方法は2つあります。

(1)PHPコードをベタ書きして実行できるようにする (2)ショートコード経由で実行できるようにする

(1)の「PHPコードをベタ書きして実行」という方法は「Exec-PHP」というプラグインを入れるとできるようです。ですが、以下のサイトで書かれている通りハイリスクです。どのサイトを見ても使用しないほうがよいとのこと。

Exec-PHPを避ける理由。小さな抜け穴がどこかにあった場合に、「任意の PHP コードができる」という重大な影響を及ぼす
残りは(2)となります。 「ショートコード」というのは、「functions.php」にPHPコードを追記しておくことで、記事中に決められたショートコードを書くと、そのプログラムを呼び出すことができるという機能です。これは、直接「functions.php」をいじってもOKです。以下に方法が載っています。
こんにちは、okutani(@okutani_t)です。WordPressではPHPを使って動的なサイトを構築しています。しかし、投稿ページや固定ページでは、そのままPHPを利用することがで...
私は、最初はこのとおりにやったのですがうまくいきませんでした。さらに、面倒でもあり、やはりプラグインを使うことにしました。

定番は「Post Snippets」

ググると多数派は「Post Snippets」のようです。解説は以下のサイトを。

  Wordpressでは投稿ページにPHPをそのまま使うことができないので、何らかの措置が必要になります。 かつてはexecPHPというプラグインで実行させている人も...
さっそくこれをインストールして使いました。ですが、ある時テーマを変えたら「Post Snippets」が使えなくなってしまいました。以前は「ストーク」(OPENCAGE)だったんですが「AFFINGER4」と「Genesis Framework」に変えたんです。するとその瞬間から、PHPは動かず、ショートコードがそのまま出力されるようになってしまったのです。困った私は、いくつかの似たような無料のプラグインを試しましたが、どれも駄目。 最後に試したのが「Insert PHP Code Snippet」です。有料なんで迷ったんですが、まあ有料ならテーマが変わったら動かなくなるなんてことは無いだろうと思い、これにすることにしました。このサイトでも快調に動いておりますです。

 Insert PHP Code Snippet(XYZ WP Insert Code Snippet)インストール方法と使い方

まずはダッシュボードの「プラグイン」より「新規を追加」でページを開きます。「キーワード検索」で「Insert PHP Code Snippet」と入力すれば出てきます。 「今すぐインストール」と書かれたボタンを押して、次に「有効化」ボタンを押せば使えるようになります。 有効化が完了するとサイドバーに「XYZ Snippet」というメニューが表示されるようになります。急に名称変更するなといいたいですが我慢しましょう。 一番上の「PHPCode Snippets」をクリックすると、下記の画面が出ます。その他はいじらないで結構です。 「Add New PHP Code Snipets」ボタンを押してください。 次のような画面が出ますので、 登録するショートコード名称を「Tracking Name」の欄へ、 PHPコードを「PHP Code」へ、 入力します。 入力したら「Create」ボタンを押せば登録となります。特別なことはありません。 ショートコードの書式は以下のようになります。赤字の部分が個々のショートコードの名称となります。ショートコードはいくつでも登録できます。 [xyz-ips snippet="Test"] ちなみに引数を付けたいときは「引数名=”xxxxx”」をショートコード内に追加します。 そしてPHPコードに{xxxxx}と書けばそれが、そのまま文字列となります。 さて例をあげます。

記事に書くショートコード
[xyz-ics snippet="snippet" param1="val1"]
引数をparam1という名称で定義、そこにval1という値を入れるという意味になります。引数部分は記事ごとに変更して使い回せます。
PHPコード
<?php
$TEST ={param1};
~
?>
上記のように書いておくとPHP側では{param1} val1 として実行時に自動で書き変わります。つまり{ }は、PHPコードの’ ’と同じ意味です。 以上です。ちなみに引数を使わなければ無料でも使えるようです(私の経験では)。でも私はすぐに購入したので、いつまで無料なのかはわかりません。引数を使う場合は、メーカーのWEBサイトに行って購入が必要なのだと思います。

購入方法と価格

購入する場合は、販売サイトにいってください。 1ドメインあたり19ドルです。購入時にドメイン名も登録します。異なるドメインのWEBサイトでは動きませんのでご注意を! 以下が購入&登録の画面です。 以上です。お役に立てれば幸いです。 以下のサイトにもこのプラグインの情報が載っています。

Wordpress用プラグイン『Insert PHP Code Snippet』の使い方と、カスタムフィールドを利用した活用法の紹介。カスタムフィールドを利用してテーブルデータをコ...

その後のご報告

この記事を書いてから、いろいろ探りますと、ちょこっとfunction.phpにコードを付け足すだけで、簡単にPHPを記事から実行できる方法があることを知りました! 先週から実践してますが全く問題ありません。ストーク、SANGO、afinger4の全てが問題なく動きます。Genesis Framewrokは私には動かすところまでいけませんでした(何か方法はあるのでしょうが・・・)。

引数をいくつ使ってもOKで、もちろん無料です! 以下のサイトに全て載ってます。御覧くださいませ!!

WordPress の投稿ページ・固定ページは PHP を呼び出すことができません。そこでショートコードを用いて PHP が呼び出せるようします。工夫すればパラメーターを渡すこ...

おすすめの本

その後のご報告」で触れた内容についてどんなしくみになっているのか知りたい人はこの本を読んでください。ショートコードどのようなものか、すっきりわかります!

初心者向けのPHP入門書

Wordpressを前提としたPHP入門書