【WordPress】PHPファイルをショートコードで読み込む方法

PHP

普段、固定ページや投稿ページにPHPを使いたい場合、セキュリティの観点からExec-PHPの使用を避けPHP Code For Postsというプラグインを使用しています。

しかし、たまーにPHP Code For Postsが動かない不具合があります。
数時間PHP Code For Postsと格闘し結局

「もうええわ!ショートコード自作したほうがマシじゃ!!」

となりました。

目標。

テーマフォルダにtemplateフォルダを作成、その中にPHPファイルを入れてショートコードで呼び出す。

意外と簡単にできました。

 

functions.phpに記入


function short_php($params = array()) {
  extract(shortcode_atts(array(
    'file' => 'default'
  ), $params));
  ob_start();
  include(get_theme_root() . '/' . get_template() . "/template/$file.php");
  return ob_get_clean();
}

add_shortcode('myphp1', 'short_php');

子テーマを使用している場合は以下のようにやります。


function short_php($params = array()) {
  extract(shortcode_atts(array(
    'file' => 'default'
  ), $params));
  ob_start();
  include(STYLESHEETPATH . "/template/$file.php");
  return ob_get_clean();
}

add_shortcode('myphp1', 'short_php');

STYLESHEETPATHは子テーマのcssファイルまでのパスを取得しています。

フォルダ内にPHP追加

試しにomusubi.phpに

[code language=”languange”]<?php echo ‘テンプレートフォルダからのPHP出力’;

と記入しました。

投稿、または固定ページにショートコードを記入

記入方法は

[[myphp1 file=’omusubi’]]

と記入します。

file=””の中にphpファイルの名前を記入するだけでOKです。

以下はショートコードからの出力です。

[myphp1 file=’omusubi’]

 

動きましたね。

これで、プラグインに依存せず、PHPを投稿や固定ページで呼び出せるようになりました。

すごい便利。

参考にしたサイト

WordPress投稿ページにPHP利用→ショートコードを使おう!

【wordpress】投稿・固定ページ内にPHPファイルをインクルード(挿入/実行)させる

 

コメント

タイトルとURLをコピーしました