WordPressの投稿ページでPHPコードを利用する
WordPressでは、PHPで動的ページを生成しています。しかし、投稿ページや固定ページでは、PHPコードを直接利用することはできません。なので、「ショートコード」という方法を用いて利用できるようにします。
流れとして2パターン存在します。「ファイル別で管理する場合」「function.phpに直書きする場合」です。 2パターン紹介するので使いたい方を使ってください。
流れ1(ファイルで管理する)
・投稿・固定ページで処理したい内容が書かれたPHPファイルを用意する
・function.phpから対象のファイルを読み込み、ショートコードを作成
・投稿・固定ページでショートコードを記述
流れ2(function.phpに直書きする)
・function.phpに処理関数を書き込み、ショートコードを作成
・投稿・固定ページでショートコードを記述
流れ1: ファイルで管理する方法
wordpressのフォルダ内(できればfunction.phpとかと同じ階層)に、処理が記述されたPHPファイルを作成します。
<?php // shortcode_function.php function shortcode() { echo "Hello, World!!"; return; } function shortcode_2() { return "Hello, World!!"; } ?>
関数としては、returnしてもしなくても大丈夫だったような。。。 しておいたほうがいいとは思います。
上記のように記述されたPHPファイルをfunction.phpでincludeします。
@子テーマを使っていない場合
<?php // function.php function create_shortcode() { ob_start(); include(get_theme_root() . '/' . get_template() . "shortcode?function.php"); return ob_get_clean(); } add_shortcode('sc', 'create_shortcode');
@子テーマを使っている場合
<?php // function.php function create_shortcode() { ob_start(); include(STYLESHEETPATH . 'shortcode_function.php'); return ob_get_clean(); } add_shortcode('sc', 'create_shortcode');
ここまで終わったら、PHPコードを実行したい投稿・固定ページに以下のように記述します。
[sc]
このようにすることで、投稿・固定ページでもPHPコード(上記の例ではcreate_shortcode.phpが実行され、includeされているshortcode_function.phpが実行される)を実行することができるようになります。
流れ2: function.phpに直書きする方法
wordpress内にあるfunction.phpに直接関数を書き込みます。
<?php // function.php function shortcode_function() { echo "Hello, World!!"; } function shortcode_function_2() { return "Hello, World!!"; } add_shortcode('sc', 'shortcode_function'); add_shortcode('sc2', 'shortcode_function'); ?>
ここまで終わったら、PHPコードを実行したい投稿・固定ページに以下のように記述します。
[sc] [sc2]
このようにすることで、投稿・固定ページでもPHPコード(上記の例ではcreate_shortcode.phpが実行され、includeされているshortcode_function.phpが実行される)を実行することができるようになります。
まとめ
少し手間と時間はかかるかもしれませんが、一度セットしてしまえば、追記していくだけで利用できるようになるので便利ですよね。 ぜひ試してみてください。