【WordPress】自作のテンプレートをショートコードにして読み込む方法

自作のPHPファイルをショートコードとして読み込ませる方法について。

functions.phpへコードを追加

固定ページ文中に例えば「新着情報」や「更新履歴」のような動的な物を埋め込みたい場合の対処方法

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

‘read_cord’の部分は自由に変更可。目的に合わせてmycordとかそんな感じに。

上記のコードをテーマのfunctions.phpへコピー&ペースト

埋め込みたい箇所にショートコードを書き込む

固定ページなどにショートコードを埋め込む

[read_coad file='読み込みたいphpファイル']

read_cordは最初のfunction部分をそのままコピペした場合。もし、ショートコードの名前を変えている場合は変更した名前に書き換えること。

file=’読み込みたいphpファイル’の部分は拡張子は不要。テーマフォルダの直下に読み込みたファイルを置いている場合はそのままファイル名だけ(拡張子不要)書けばOK。フォルダの中に格納されている場合は「フォルダ名/phpファイル名」

ページ編集ツールと合わせて使いました

phpを使用したページ作りの場合、テンプレート側に必要なプログラムを書き込んでしまうケースがほとんどです。今回はお客さんが自分である程度ページを編集したり更新したいとの要望があったため、ページ編集ツールのElementorを採用。ほとんどがドラッグアンドドロップでコンテンツを追加したり、削除したりができるのですが、一方でphpコードを直接埋め込むことができませんでした。更新情報などのコンテンツも必要だったため、該当箇所を別ファイル化し、ショートコードとして読み込むことになりました。

上記のコードを追加することでElementorで作成したページの任意の場所に更新情報などを埋め込むことができました。

参考にさせていただいたサイト
https://bge.jp/wp-shortcode-php_include/