ウェブコーディング

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. ウェブコーディング

    WEB言語を手を動かして1から学べるサイト

    HTML・CSS・PHPなどのウェブ系の言語をどれくらい理解しているで…

  2. 素材

    inkscapeでパターン素材を作るチュートリアル

    inkscapeを使うと簡単にパターン素材を作ることができます。い…

  3. タイポグラフィ

    inkscapeのパス操作でテキストをポップにする方法

    特別なフォントを使わなくても、パス操作を使うことでポップな書体を作るこ…

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

    inkscapeを使って集中線・放射線を思い通りの仕上がりに

    グラフィックソフトの場合、手で描くのとは違って、機能とその結果が結びつ…

  5. ウェブコーディング

    プラグイン不要!2ステップで完了!「FontAwesome」をWordPressに導入してアイコンを…

    ブログのカスタマイズをするとき、必要なアイコンをいちいち画像化して、フ…

  6. ウェブコーディング

    PHPの基本的な文法と変数のまとめ

    どんなPHP文でも必ず従わなければいけない文法があります。その初歩…

コメント

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

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

CAPTCHA


スポンサードリンク

ピックアップ記事

おすすめの本

使用している素材

カテゴリー

 
  1. ブログ収益化

    月額100円から使える「ロリポップレンタルサーバー」
  2. グラフィックデザイン

    レイアウトデザインに最適な無料ソフト「inkscape」(≒Illustrato…
  3. グラフィックデザイン

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

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

    無料でクオリティが高く、検索機能が利用できる画像素材サイト3選
PAGE TOP