ウェブコーディング

WordPressの記事内でPHPを実行した結果を表示する方法

WordPressの記事内でPHPを実行できると、記事に表示できるコンテンツの幅が増えます。

今回はPHPソースコードの実行例を記事内に表示する方法をまとめました。

記事内でPHPが実行できることによるリスク

はじめに今回の方法を取ることによるサイトのリスクをちょっとだけ。

まず、記事内でPHPを実行する方法には3つあります。

  • プラグインを使う(Exec-PHP、runPHP)
  • functions.phpの修正で記事内でのPHP実行
  • functions.phpの修正でショートコードを使う

プラグインを使う方法とfunctions.phpの編集で記事内PHPを使えるようにする方法は、どちらも記事編集画面で直接PHPを入力できるようにする方法です。

ショートコードを使う方法は記事編集画面ではPHPを記述することはできませんが、PHPファイルをサーバーにアップしておいて、記事内でショートコードを利用してアップしたPHPファイルを読み込む方法です。

自分の認識違いでなければ、記事内で直接PHPスクリプトが実行できる状態は、少なからずサイト改ざんなどのサーバー攻撃の危険が増すことになります。

その為、今回採用したのはショートコードを利用する方法です。

記事内で直接PHPを編集・実行できませんが、セキュリティ上はプラグインを利用したり直接実行できるようにするより安全です。

PHPファイル用のフォルダを用意する

ショートコードで呼び出すPHPファイルを保管しておくフォルダを作成しておきます。

基本的にフォルダ名はなんでもいいのですが、ここでは「myphpfiles」としておきます。

FTPソフトを使って、現在使用しているテーマフォルダの直下にフォルダを作成します。

/wp(WordPressインストールフォルダ)
   ├ /wp-admin
   ├ /wp-content
      ├ /languages
      ├ /plugins
      ├ /themes
         ├ /your-theme(使用しているテーマのフォルダ)
            ├ /myphpfiles  ←  ここに作成

functions.phpの編集

ショートコードを利用してPHPファイルの読み込みができるように、現在使用しているテーマフォルダ内のfunctions.phpに以下の記述を追加します。

// 記事内にphpファイルをインクルード 
// ショートコードの書き方 [myphp file='test']
function Include_my_php($params = array()) {
    extract(shortcode_atts(
        array('file' => 'default'),
        $params
    ));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/myphpfiles/$file.php");
    return ob_get_clean();
} 
 
add_shortcode('myphp', 'Include_my_php');

2行目まではコメント行なので、自分でfunctions.phpを見たときに何が書いてあるか分かれば何でもいいです。

子テーマを利用している場合は下記を使って下さい。

// 記事内にphpファイルをインクルード
// ショートコードの書き方 [myphp file='test']
function Include_my_php($params = array()) {
    extract(shortcode_atts(
        array('file' => 'default'),
        $params)
    );
    ob_start();
    include(get_stylesheet_directory_uri() . "/myphpfiles/$file.php");
    return ob_get_clean();
} 
 
add_shortcode('myphp', 'Include_my_php');

子テーマの場合は、子テーマのスタイルシートがあるディレクトリを参照するようにしてあります。

これらの記述箇所はわかりやすく問題になりにくい、functions.phpの一番下に記載します。

include(get_theme_root() . '/' . get_template() . "/myphpfiles/$file.php");

これは親テーマのフォルダを指定する記述で

include(get_stylesheet_directory_uri() . "/myphpfiles/$file.php");

これは子テーマのフォルダを指定する記述です。

PHPコードの実行

記事内でPHPコードを実行するには、実行したい内容を記述したPHPファイルを「myphpfiles」へアップロードします。

今回は試しに次のコードをテキストエディタで作成して、「test.php」と言う名前にして保存します。

<?php
$test = "テスト";
 
$doc = <<< EOM
これはPHPファイルを実行した $test 結果です。<br>
\$test の部分が「テスト」と表示されていれば、
正しく実行されていることになります。

EOM;

echo $doc;
?>

保存した「test.php」をFTPソフトで「myphpfiles」へアップロードします。

記事の中でこのPHPファイルを実行するには次のショートコードを記載します。

[myphp file='test']

「myphp」とはfunctions.phpで定義した関数を呼び出すときのコードです。

「file=’test’」はフォルダ内のどのPHPファイルかを指定するコードです。

記事が気に入ったら
tipLog を "いいね!"
Facebookで更新情報をお届け。

tipLog

WordPressテーマ

WordPressテーマ「MAG(TCD036)」

スポンサードリンク

関連記事

  1. ウェブコーディング

    NetBeansでSQliteのドライバーを有効にするプラグイン

    PHPなどのwebアプリケーションを作成できるNetBeansですが、…

  2. グラフィックデザイン

    手作業は最小限で!inkscapeで「カラフルなドットパターン」の作り方【SVG/PNGサンプルあり…

    「ドットパターンを作る」って聞いて、難しく感じる人が多いような気がする…

  3. レイアウト

    簡単にテキストレイアウトができるinkscapeの「テキストの流し込み」機能の使い方

    写真付きのパンフレットでよくあるテキストレイアウトには被写体を邪魔しな…

  4. WordPress

    WordPressのパーマリンク設定のためのタグ一覧

    WordPressのパーマリンクを設定するとき、自動でカテゴリー名など…

  5. 素材

    inkscapeのタイルクローンでマスキングテープを張り合わせたパターンを作るチュートリアル

    パステルカラーのマスキングテープを張り合わせたようなパターンを作成した…

  6. グラフィックデザイン

    アイコンの基本は抽象化!特徴を見つけて基本図形に落としこむ方法

    作りたいアイコンやロゴがあるときに、なかなかアイデアが浮かばないという…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


スポンサードリンク

ピックアップ記事

おすすめの本

使用している素材

カテゴリー

 
  1. グラフィックデザイン

    レイアウトデザインに最適な無料ソフト「inkscape」(≒Illustrato…
  2. ブログ収益化

    脱初心者しませんか?Amazon・楽天のアフィリエイトを上手に活用するための予備…
  3. グラフィックデザイン

    フォトレタッチ・グラフィックデザインの無料ソフト「GIMP」(≒Photosho…
  4. 素材

    無料でクオリティが高く、検索機能が利用できる画像素材サイト3選
  5. ブログ収益化

    無料レポートスタンドの「メルぞう・Xam」を120%使い倒す方法
PAGE TOP