*

WordPress記事内でプラグインを使わずにPHP,JavaScriptプログラムを動かす

公開日: : 最終更新日:2014/04/19 初心者がWordPressでブログを作る , , , ,

New WordPress Buttons and Stickers / Nikolay Bachiyski

WordPressのカスタマイズをしていると、

「記事内や固定ページ内にPHPやJavaScriptを記述したい!」

という欲望がムクムクと膨らんでくると思います。

しかし、現状の仕様ではWordPressの記事内にPHPなどのスクリプト言語を記述することはできません。

当サイトの以下の記事では、記事内でPHPとJavaScriptのプログラムを動作させています。

>> FX運用計画シミュレーションツール

一体どうやっているのか?
実現の方法をご説明します。

プラグインを使って記事内にPHPを記述する

世の中には便利なプラグインが溢れていて、プラグインを探すのが趣味のような方もいらっしゃるのではないでしょうか。

例に漏れず、PHPを記述できるようになるプラグインもいくつか存在するようです。

WP記事内にPHPを記述するプラグインの例

こういうプラグインが有名です。

私も以前、Exec-PHPを使ったことがあり、とても便利だったのを覚えていますがそれも今は昔。

プラグインを使わない理由

そんな便利なプラグインですが、当サイトでは極力プラグインは使わないようにしています。
理由は以下の通りです。

・WordPress本体のバージョンアップで使えなくなることがある
・プラグインの更新で使えなくなることがある
・他のプラグインとコンフリクトして正常動作をしなくなることがある
・プラグインを外すと過去の記事が崩れるなどの影響が出ることがある

しかも、上で紹介したプラグインは、この記事執筆時点(2014年4月)で2年以上もアップデートされていないです。
それはええのんかな?

プラグインを使わずにWordPress記事内でPHPプログラムを動かす

さて、本題。
プラグインを使わずに、WordPressの記事や固定ページ内でPHPファイルをインクルードし、PHPやJavaScriptプログラムを実行する方法を紹介します。

プラグインを使わずにWP記事内でPHPを実行するための手順

「functions.php」内にコードを記述する

まず、テーマ関数ファイル「functions.php」内に以下のコードを記述します。

テーマフォルダ内にPHPファイル管理用フォルダを作成する

次に、有効にしているテーマフォルダ内に「myphpfiles」というフォルダを作成し、そのフォルダ内に実行したいPHPファイルを配置します。
※フォルダ名は何でも良いですが、その場合はコード内のinclude関数内の「myphpfiles」という記述を作成したフォルダ名に合わせて変更してください。

例えば「myphpcode.php」というファイルを実行したい場合は、こんな感じです。

(ワードプレスディレクトリ)>wp-content>themes>(テーマフォルダ)>myphpfiles>myphpcode.php

ショートコードでPHPファイルを指定

あとは、記事や固定ページ内でPHPプログラムを実行したい場所に、以下のショートコードを書くと、「myphpfiles」フォルダ内にあるPHPファイル「myphpcode.php」を呼び出して実行してくれます。

意外に簡単でしたね♪

phpコードを書く

あとは好きなようにプログラムをガリガリ書いてください。

参考)How to Develop a PHP File Include Plugin for WordPress(『SitePoint.com』より)

サンプルコード

簡単なプログラムを書いて、実行してみましょう。
「myphpcode.php」内に以下のコードを書いてみてください。

※PHPの文法上、このプログラムでは末尾の「?>」は省略できますが、分かり易くするために書いておきます。

次に、WordPressの記事を新規作成して、記事内に以下のコードをコピペしてみてください。

※このとき、必ずテキストエディッタを用いてください。ビジュアルエディタを用いると、ショートコードを正常に読み込まない可能性があります。
…とは言え、WordPressでPHPを動かしたいなんて思う人が、ビジュアルエディタを使っているとも思えませんがww

下書き保存して、プレビューで見てみましょう。
記事内に以下のように表示されたら成功です!

ここに表示される。
↓↓↓↓↓
PHP is running in the WordPress article!
↑↑↑↑↑

JavaScriptはPHPファイルの中に記述すればOK

JavaScriptを実行したければ、PHPファイル内にJavaScriptコードを書けばOKです。
さきほど作ったファイル「myphpcode.php」の中の「?>」の下に以下のコードを追記してみましょう。

これをプレビューしてみると、以下のように表示されていればOKです。

ここに表示される。
↓↓↓↓↓
PHP is running in the WordPress article!
JavaScript is running in the WordPress article, too!!
↑↑↑↑↑

ちなみに、上の例ではJavaScriptのライブラリのひとつであるjQueryを使っています。WordPressはデフォルトでjQueryが使えるようになってはいるのですが、WordPressの中ではjQueryの短縮オブジェクト名「$」が使えないという制限があるため、以下を参考にしてWordPress内でも「$」が使える方法で記述しています。

参考)WordPressでjQueryを使うときに、問題なく動作させる為の基礎知識やTipsと、動かない場合の対処例(『かちびと.net』より)

子テーマを使っている場合の注意点

当サイトもそうですが、子テーマを使ってカスタマイズを行っている方も多いと思います。
その場合は、子テーマフォルダ配下に「myphpfiles」フォルダを作成し、子テーマの「functions.php」内に書くコードを以下のように変更します。

関数 include() 内で呼び出している get_template() 関数を、get_stylesheet() に変更しています。これは、子テーマを扱っている場合はよくやるので、頭の片隅に置いておくとよいでしょう。

参考)WordPress の関連 URL、パスを呼び出す関数、定数色々(『WordPressの開発テクニック集 WP Tips』より)

セキュリティ上の注意点

この方法は、セキュリティ上のリスクを抱えています。

例えば、マルチサイト環境や複数ユーザーで管理している環境では利用しない方がいいかもしれません。
全ての管理者ユーザーがPHPを実行できてしまいます。
使い方を誤ると、このプラグインの存在自体がセキュリティホールになる可能性があります。
PHPファイルを管理するフォルダのアクセス権限を設定するなどの対策を講じる必要があります。

また、管理者権限を盗まれたりした場合、悪意のある攻撃者がスクリプトを実行し放題となります。
(ま、管理者権限を盗まれたらどの道アウトですがww)

記事内に直接PHPプログラムを書く訳ではないため、「Exec-PHP」などよりは危険度は低いですが、以上のリスクがあることを充分に理解した上で、自己責任の上で運用してください。

当サイトでの使用例

当サイトでは、例えば以下の記事が、この方法を使って書かれています。

>> FX運用計画シミュレーションツール

フォームに値を入力して「計算」ボタンをクリックすると、PHPプログラムで計算を実行して、計算結果とグラフを表示します。

グラフの描画についてはjQueryプラグインのjqPlotを利用しています。詳しくは以下の記事を参照ください。

>> 【WordPress】見栄えのいいグラフを動的に描画できるjQueryプラグイン「jqPlot」をWPで使用する方法

スポンサードリンク

「いいね!」と思ったらシェアしてもらえると...大感謝です。
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

jqplot-jquery-graph-in-wordpress

【WordPress】見栄えのいいグラフを動的に描画できるjQueryプラグイン「jqPlot」をWPで使用する方法

当サイトの以下の記事では、数値計算を実行した後、計算結果をグラフ表示しています。 >>

記事を読む

stinger3_logo_140415

WordPressテーマ【STINGER】子テーマのスマホ用スタイルシート「smart.css」を自力でカスタマイズする

WorpPressテーマ「STINGER」は、WordPressの初心者でも簡単に設定できるテンプレ

記事を読む

スポンサードリンク

Message

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

スポンサードリンク

jqplot-jquery-graph-in-wordpress
【WordPress】見栄えのいいグラフを動的に描画できるjQueryプラグイン「jqPlot」をWPで使用する方法

当サイトの以下の記事では、数値計算を実行した後、計算結果をグラフ表示し

USDJPY_20140418115344
FX自動売買結果 ST1ドル円 2014/4/16-17 勝ち+39.7pips

ネオシオン氏のST(スナイパートレード)シグナルを用いた自動売買ソフト

New WordPress Buttons and Stickers / Nikolay Bachiyski
WordPress記事内でプラグインを使わずにPHP,JavaScriptプログラムを動かす

WordPressのカスタマイズをしていると、 「記事内や固定ペ

USDJPY_20140416220754
FX自動売買結果 ST1ドル円 2014/4/14-15 負け-70.1pips

2014年4月14日〜15日のドル/円(USD/JPY)自動売買の結果

stinger3_logo_140415
WordPressテーマ【STINGER】子テーマのスマホ用スタイルシート「smart.css」を自力でカスタマイズする

WorpPressテーマ「STINGER」は、WordPressの初心

→もっと見る

  • FX自動売買マネジメントサービス
    XEMarkets 口座開設
    海外FXランキング
    アフィリス パートナー募集
PAGE TOP ↑