ショートコードを使う時のphpファイルの置き場所

スポンサーリンク

このサイトでは、すべての記事に「初級」「中級」「上級」のタグをつけています。

記事によって

  • 訪問される方にとって内容が初歩的な記事
  • サイトを作り始めて間もないので難しい内容は理解できない

ということがあります。

「ミスマッチ」の記事を出来るだけ読まなくてもいいように、逆に言うと知りたい情報に早くたどり着くようにと、3つのタグをつけています。

マッチング

そこで「特定のタグを設定した記事」だけを一覧表示させたいと思い、固定ページに「初級」「中級」「上級」別の記事目次を作るため、ショートコードを使ってやろうと「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’);
//ここまで

WordPressのテーマ編集は「子ページ」で行いますので、子ページのファイルを編集しました。

特定のタグが付いた記事を一覧に表示させる「hoge.php」ファイルを作成し、アップロードして固定ページに [myphp file=’hoge’]とショートコードを書き込み公開すると、エラーになります。

エラーメッセージには
『function Include_my_php($params = array()) {』が問題のようだと書かれているのですが、何度やってもエラーつづきで半ばあきらめかけたところ・・・もしかして・・・と思ってやり直してみると、問題なく表示されました。

原因は簡単でした・・・

「hoge.php」を子テーマのフォルダにアップしていたことが原因でした。
親テーマのフォルダにアップすると、何ごともなく表示できました。

コメント