Webサイト専門プログラマの言いたい放題

元システムエンジニアがサイト制作とプログラミングについて好き放題しゃべります。

【WordPressオンラインレッスン後記】

f:id:wp-lesson:20151012175721j:plain

自分で追加したテンプレートに記事の内容が表示されない

先日のWordPressオンラインレッスンで扱ったご相談内容です。

生徒さんが、ご自身で制作されているWordPressサイトにて、
ブログのカテゴリー毎に表示内容を変えるために、“テンプレート階層”の
ルールに従ってカテゴリー別のテンプレートを作ったけれど、
そのカテゴリーの記事が1件しか表示されず、
しかもタイトルしか表示されないというのです。

追加したテンプレートのソースコードを添削したところ、
大きな間違いはなさそうでしたが、カテゴリーの記事をデータベースから
取り出すためのPHPプログラム部分が動作していませんでした。

仕組みを理解しよう

WordPressで作ったサイトのページは、いくつかの種類に分類され、
ページの種類に応じたテンプレートファイルがWordPressのルールに
沿って自動的に選択されます。

選択されたテンプレート(PHP)に、記事のデータを表示する箇所があれば
WordPressは自動的にデータベースから必要なデータを読み込んで、
テンプレート内の該当箇所に当てはめ(置き換え)て、HTMLファイルに
変換してブラウザに表示させます。

特に、カテゴリーページ(同じカテゴリーの記事を一覧表示するページ)や
日付ページ(同じ投稿日の記事を一覧表示するページ)のような一覧形式の
ページは、テンプレート側に何も記述しなくても、WordPress側があらかじめ
記事の一覧データをデータベースから取り出してくれていますので、
テンプレート側では

「(WordPressが取得してくれている)一覧データから必要なデータを
 抜き出して、好きな場所にHTMLとして埋め込む記述をすればよい」

のです。

<?php while (have_posts()) : the_post(); ?> …①
ここに記事データを取り出してHTMLに変換する処理を記述する
<?php endwhile; ?> …②

WordPressはテンプレート内の繰り返し部分(①)が読み込まれるよりも先に
一覧データをサーバーのメモリ上に読み込み(ロード)を済ませています。

そして、読み込まれている記事一覧データの中から、記事1件ずつ
データを取り出す処理は、PHPの繰り返し命令である ①と② で囲った内側に
記述します。

①と②の間に書かなくてはなりません。

その理由や、上記コードの詳しい意味はオンラインレッスンにて。

こんな方におすすめのプログラミングレッスンを行っています

  1. Webデザイナーを目指しておられる方
  2. ホームページやブログの更新はできるけれど、レイアウトやデザインの変更ができない方
  3. ホームページの制作経験はあるけれどWordpressのカスタマイズができない方
  4. HTMLは分かるけれどもスマホ対応のやり方が分からない方
  5. 複雑なスタイルシートjQueryの使い方が分からない方
  6. HTML、CSSjQueryPHP の正しい書き方に自信がない方

oshierumanaberu.net

↑ページの中ほどにあるオレンジ色の「先生に聞いてみる」というボタンを押すと、メッセージが入力できますので、お気軽にご相談ください。

ご相談のメッセージをいただきましたら24時間以内にお返事を差し上げます。より詳しい状況をお聞かせいただける方には1時間ほどですがスカイプで無料相談を承りますので、ご遠慮なくお尋ねください。