固定ページでphpを使いたい

2019-08-10

固定ページ・投稿ページにphpを配置できる!

例えば、お知らせの新着一覧を固定ページ上で好きな位置に配置したいな、と考えたことはありませんか?
プラグインもあるけれど、あまりプラグインが増えてもメンテナンスとか不具合とか面倒だし。

そんなときにうれしい方法がありました!なんとfunctions.phpに下記のコードを記述すれば、ショートコードの追加でphpを呼び出すことができるんです。直接php言語が使えない固定ページや投稿ページを気軽に動的なページにすることが可能です。

functions.phpを編集するときは、WordPress上で編集せずに、FTPでアップした方が安心です。
記述ミスがあった場合、画面が真っ白になってしまうことがあります💦  自信のないときはすぐに修正できるようにローカルで編集してFTPでアップするのが絶対おすすめですよ。

functions.phpに追加

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

 

固定ページに追加

aaaaa.phpを読み込みたい場合、固定ページに下のショートコードをテキストエディターで配置します。

[myphp file=aaaaa]

aaaaa.phpはサーバーのthemesフォルダにアップしておきます。
(.../wp-content/themes/使用しているテーマ/aaaaa.php)

 

埋め込みたいphpが表示されましたか?
アップロード先の指定を間違えていたり、ショートコードに「.php」を入れてしまうと「ファイルがないですよ」というエラー表示がでてきます。
私は呼び込みたいphpを作って満足して、アップロードし忘れてることもしばしば。

子テーマで固定ページにphpを呼び出すには?

多分、子テーマで使う方が多いですよね。子テーマを使用している場合は上の6行目を下記のように置き換えます。

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