[`yahoo` not found]
Delicious にシェア
Digg にシェア
[`evernote` not found]
LINEで送る
Pocket

 

投稿データをサイト画面に出力させるには、「メインループ」と「メインクエリ」の概念の理解が不可欠です。

メインクエリ

WordPress は、ユーザーがアクセスしたURL により、表示条件を決定し、データベースから条件に合致した記事を探し、内容を表示させる。

http://webdesign.ki-blog.biz/category/web制作/

このURLにより決められる条件 → メインクエリ

メインクエリ毎に、表示させる内容が決められている。

WordPress におけるループ処理

投稿一覧を実装させるためには、WordPress ループが必須です。

メインクエリで抽出された記事のループを、特に、メインループと言う。

ループ

同じ処理を所定の回数だけ繰り返す。

WordPress ループ

ループ処理で、決められたフォーマットで記事を出力させる。

WordPress ループは、管理画面の【表示設定】の[1ページに表示する最大投稿数]で指定された件数だけ、投稿を繰り返す。

WordPress ループの構造

WordPress ループは、if 文と while 文の組み合わせが用いられる。

基本的なWordPress ループの構造

WordPressループの基本構造

 

if( have_posts() ):

if 文の条件分岐の開始。

「もし、記事が1件以上、存在したなら。」という条件分岐を意味する。

while 文 while ~ endwhile

条件に当てはまる間、処理を繰り返すという命令文。

while ( have_post() )

while 文を使ったループ処理の開始。

have_posts() を使うことで、「記事が存在する間、処理を繰り返す。」という意味になる。

have_post()

そのページの記事の有無をチェックする条件分岐のテンプレートタグ。

the_post()

ループの中で、記事1件分のデータをセットするテンプレートタグ。

実際に、記事を表示させるためには、この下に、各テンプレートタグを使う。

処理対象の記事を一つ先に進める。

while 文では、条件と比較する値が変わらないと永遠にループを繰り返すので、この the_post() により、処理対象を変更している。

endwhile;

ループの終了。

else:

if( have_posts() ) にかかる。

「もし、表示すべき記事が1件もなければ。」という意味になる。

ここから先は、記事が存在しない場合に、表示させるコンテンツを入力する。

endif;

if 文の条件分岐の終了。

ここまでが、WordPress ループとなる。

 

このループをトップページの index.php に書けば、決められた件数の投稿データが表示され、個別記事ページの single.php に記述すれば、該当記事が表示される。

テーマ制作において、WordPress ループは、常に意識しておかねばならない。

なぜなら、WordPress のテンプレートタグには、WordPress ループ内で使えるもの、ループ外で使えるものが、存在するので。

オススメ書籍

 

 

 

 

[`yahoo` not found]
Delicious にシェア
Digg にシェア
[`evernote` not found]
LINEで送る
Pocket

コメントを残す