[WordPress] 外部PHPファイルをショートコードで読み込む
エディターは便利ですが、メンテナンス性を考えて、PHPファイルで管理したい事もあります。作っておいて、さっと差し替える時などは、その方が都合が良いです。
ブロックエディタ(Gutenberg)にショートコードを書く事で、外部のPHPファイルを挿入する方法をご紹介します。
INDEX
ショートコードの書き方(基本)
編集画面からショートコードを呼び出し、[カッコ]の中にコードを入力します。

共通事項
子テーマ内に[template-parts]というフォルダを作成したとします。その中に作成したphpファイルを準備します。
子テーマ内にあるfunction.phpに以下のコードを書きます。[template-parts]の部分は、ご自分が作成したフォルダ名に変更可能です。
そのファイルをショートコードを投稿や固定ページでtest.phpを読み込みます。
[myphp file='test']phpファイルを読み込む準備
function my_php_Include($params = array()) {
$atts = shortcode_atts(array(
'file' => 'default'
), $params);
$file_path = get_stylesheet_directory() . "/template-parts/{$atts['file']}.php";
if (!file_exists($file_path)) {
return "<!-- Error: {$atts['file']}.php が見つかりません -->";
}
ob_start();
include($file_path);
return ob_get_clean();
}
add_shortcode('myphp', 'my_php_Include');
画像へのリンクの書き方
子テーマからのURL
get_stylesheet_directory_uri() にすれば、環境(URL)が変わっても画像が消えません。
<img src="<?php echo get_stylesheet_directory_uri(); ?>/template-parts/images/table-banner.jpg" alt=" ">
画像を専用フォルダまでの省略タイプ
// 画像フォルダまでのURLを変数に入れておくと楽です!
<?php
$img_path = get_stylesheet_directory_uri() . '/template-parts/images/';
?>
//実際の表記の方法
<img src="<?php echo $img_path; ?>item01.jpg" alt="商品画像">ショートコードを自作する
自分で作ってしまう方法です。ちょっとしたコードを差し込みたい場合に使えますが、需要があるのか??
子テーマ内にあるfunction.phpに以下のコードを書きます。[mytest-code]は任意の名前を付けて下さい。それが、自作したショートコードの名前です。
add_shortcode(ショートコード名, パラメータ)となります。
function my_func( $atts ){
return "<p>あいうえお</p>"; //実行したい処理
}
add_shortcode( 'mytest-code', 'my_func' );上記ではreturnで「あいうえお」と表示させていますが、もちろん if ・・・endifとか、バリバリ必要なコードを書いて下さい。
あとは、エディター画面からショートコードを書くだけ
[mytest-code]

コメント ※ハンドルネームでお願いします