過去の記事で、テーマを自作する場合のトップページ作成手順を簡単に説明しています。
本記事ではその延長として、ブログ記事の一覧ページを作成する手順を書いていこうと思います。
この固定ページはあくまでも側で、ここに書いた内容は何も表示されないのでタイトル以外は空欄でOKです。ページの内容は後ほど作成していきます。
WordPressの管理画面から 固定ページ > 新規追加 を選択。タイトルは「トップページ」にしておき、公開します。
新規追加でタイトルは「記事一覧」にしておきます。
今回はurlをhttps://〇〇/blog/としたいので、パーマリンクのURLスラッグには blog と入力し、公開します。
管理画面で 設定 > 表示設定 を選択。ホームページの表示の「固定ページ」のラジオボタンに●を入れます。
この設定で変更を保存します。
上記の表示設定を行なった場合に使用されるテンプレートの優先順位は以下です。なのでこのルールに沿ってテンプレートファイルの命名を行います。
カスタムテンプレートファイルとは、固定ページ作成画面で選択したテンプレートのことを指し、優先順位がいちばん高くなります。
ちなみにカスタムテンプレートとして使いたい場合は、ファイル冒頭に以下の記述が必要です。これがないと作成画面に出てこないので注意。
ループとはWordPressで投稿を表示させる為のphpコードで、繰り返し処理が行われることを指します。投稿に関するいろいろな場面で使用されますが、記事一覧ページでもこのループを使って投稿の内容が出力されるようにしていきます。
試しにこちらを作成した記事一覧ページのテンプレートの良き所にコピペしてみてください。投稿されている記事が一覧表示されると思うので、是非ソースを確認してみてください。どのようにhtmlが出力されているかわかりやすいと思います。
以下でざっくり説明します。
上のループの例で言うと投稿があれば例の2〜24行目の内容、なければ26行目の内容を出力します。
投稿のcssクラス名を取得します。スタイル調整の時に便利。
また”post-wrap”のように使うとクラスの付与もできます。
has_category()で投稿が持つカテゴリをチェック、echoでget_the_category_list(‘ ‘);を出力。
ループ内で使うことでその投稿のパーマリンクURLを取得。
サムネイルを取得。画像urlとaltだけ取得したかったのでこのように記述しています。
公開日と更新日の取得。更新日が公開日と異なる場合だけ表示させています。
the_title();で投稿のタイトルを取得。抜粋(get_the_excerpt())をmb_substr()関数で文字数を50に制限して出力しています。文字数が50を超えない場合は末尾に「…」を付けません。
ループ処理がうまくいってるのを確認できたら、cssでレイアウト整えていって完成です!ループをいちから書くのがめんどくさいって人はそのままコピペして使ってもいいし、もしやりたい事がこの記事で見つからなかった場合、関数リファレンス – WordPress Codex 日本語版を見て探してみるのも勉強になっていいと思います。
ページトップへ