特定のテンプレートに記事を挿入する
目次
今回やること
特定カテゴリページに固定ページの記事本文を挿入する
こんにちは。今回は特定のテンプレートに、特定の固定ページの記事本文を挿入する方法について紹介します。具体例として、カテゴリの説明文&イメージをカテゴリページ冒頭に挿入するテンプレートを作成します。また、その説明文は固定ページで作成して、管理画面から編集できるようにします。
この例と同様に、カテゴリページやタグページやトップページなどに、そのページ全体を説明する文章を挿入したい場面は度々発生する思うのですが、そういった挿入文を管理画面から編集できると便利ですよね。今回のTipsはそういう場面に応用できると思います。
作業手順
具体的には、次の3ステップです
- カテゴリを説明する記事を固定ページで作成、非公開で更新する
- そのカテゴリの専用テンプレートをつくる
- 作成した固定ページを出力するコードを書く
カスタマイズする
ここでは次のカテゴリページに説明文を挿入したケースに基づいて、その手順を紹介します。
http://bousai.hitsuji.me/category/information-acquisition/
なお、編集前のテンプレートSetはここ、編集後はここにあります。(GitHubへ飛びます)
Step1 カテゴリを説明する記事を作成する
固定ページを1つ新規作成し、カテゴリを説明する画像&記事を作成します。
記事は非公開を選択して更新します。この記事は、あくまでカテゴリページの説明として引用するために作成したので、意図と違うシーンで表示されないように非公開としておきます。
また、分かりやすいslugを付けておきます。後でカテゴリテンプレート上でこの記事を指定するときに、このslugを利用します。
Step2 専用のテンプレートを作成する
次に、対象となるカテゴリの専用のテンプレートを作成します。専用テンプレートファイル名は、”category-$cat_slug.php”の形式で指定します。
例題 http://bousai.hitsuji.me/category/information-acquisition/ のカテゴリslugは、”information-aquisition”なので、”category-information-acquisition.php”とします。
補足:カテゴリIDでも指定できます。”category-$cat_id.php”の形式です。
作成したテンプレートのソースコードは、1つ上位層のテンプレートをコピーしておきます。ここでのテンプレートsetではarchive.phpが該当しますので、それを丸々コピーしておきます。この状態で一度サイトを実行して、カテゴリページを開いてみて動作するかを確認しておきます。
補足:テンプレート階層は、ここに説明があります。また、私が以前テンプレート階層について書いた記事はここにあります。
Step3 記事を出力するコードを書く
先ほど作成したテンプレートに、記事を出力するコードを挿入します。
category-information-acquisition.php(抜粋)
L3-L7が記事を出力するために挿入コードです。L4で、カテゴリ説明文を書いた固定ページのslugを指定して読み込み、L5で読み込み成功したかを確認し、L6で固定ページの本文を出力しています。
動作を確認する
以上の編集を保存して、再度サイトを実行してカテゴリページを開くと、説明記事が冒頭に表示されるようになりました。
今回は以上です。お疲れ様でした!