このサイトでは、すべての記事に「初級」「中級」「上級」のタグをつけています。
記事によって
- 訪問される方にとって内容が初歩的な記事
- サイトを作り始めて間もないので難しい内容は理解できない
ということがあります。
「ミスマッチ」の記事を出来るだけ読まなくてもいいように、逆に言うと知りたい情報に早くたどり着くようにと、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();
}
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」を子テーマのフォルダにアップしていたことが原因でした。
親テーマのフォルダにアップすると、何ごともなく表示できました。
コメント