【WordPressオンラインレッスン後記】
自分で追加したテンプレートに記事の内容が表示されない
先日のWordPressオンラインレッスンで扱ったご相談内容です。
生徒さんが、ご自身で制作されているWordPressサイトにて、
ブログのカテゴリー毎に表示内容を変えるために、“テンプレート階層”の
ルールに従ってカテゴリー別のテンプレートを作ったけれど、
そのカテゴリーの記事が1件しか表示されず、
しかもタイトルしか表示されないというのです。
追加したテンプレートのソースコードを添削したところ、
大きな間違いはなさそうでしたが、カテゴリーの記事をデータベースから
取り出すためのPHPプログラム部分が動作していませんでした。
仕組みを理解しよう
WordPressで作ったサイトのページは、いくつかの種類に分類され、
ページの種類に応じたテンプレートファイルがWordPressのルールに
沿って自動的に選択されます。
選択されたテンプレート(PHP)に、記事のデータを表示する箇所があれば
WordPressは自動的にデータベースから必要なデータを読み込んで、
テンプレート内の該当箇所に当てはめ(置き換え)て、HTMLファイルに
変換してブラウザに表示させます。
特に、カテゴリーページ(同じカテゴリーの記事を一覧表示するページ)や
日付ページ(同じ投稿日の記事を一覧表示するページ)のような一覧形式の
ページは、テンプレート側に何も記述しなくても、WordPress側があらかじめ
記事の一覧データをデータベースから取り出してくれていますので、
テンプレート側では
「(WordPressが取得してくれている)一覧データから必要なデータを
抜き出して、好きな場所にHTMLとして埋め込む記述をすればよい」
のです。
<?php while (have_posts()) : the_post(); ?> …① ここに記事データを取り出してHTMLに変換する処理を記述する <?php endwhile; ?> …②
WordPressはテンプレート内の繰り返し部分(①)が読み込まれるよりも先に
一覧データをサーバーのメモリ上に読み込み(ロード)を済ませています。
そして、読み込まれている記事一覧データの中から、記事1件ずつ
データを取り出す処理は、PHPの繰り返し命令である ①と② で囲った内側に
記述します。
①と②の間に書かなくてはなりません。
その理由や、上記コードの詳しい意味はオンラインレッスンにて。
こんな方におすすめのプログラミングレッスンを行っています
- Webデザイナーを目指しておられる方
- ホームページやブログの更新はできるけれど、レイアウトやデザインの変更ができない方
- ホームページの制作経験はあるけれどWordpressのカスタマイズができない方
- HTMLは分かるけれどもスマホ対応のやり方が分からない方
- 複雑なスタイルシートやjQueryの使い方が分からない方
- HTML、CSS、jQuery、PHP の正しい書き方に自信がない方
↑ページの中ほどにあるオレンジ色の「先生に聞いてみる」というボタンを押すと、メッセージが入力できますので、お気軽にご相談ください。
ご相談のメッセージをいただきましたら24時間以内にお返事を差し上げます。より詳しい状況をお聞かせいただける方には1時間ほどですがスカイプで無料相談を承りますので、ご遠慮なくお尋ねください。