PHP入門:WordPressで使われるPHPの基本|ループとテンプレートタグの仕組み
WordPressでよく使われるPHPの基本として
・ループ
・テンプレートタグ
という2つの重要な仕組みをやさしく解説します。
WordPressのPHPは「データを表示するため」に使われる
これまで学んできたPHPでは、変数や配列を使って値を扱ってきました。
WordPressでは、それらの値の代わりに「データベースに保存された情報」を扱います。
例えば、
・投稿タイトル
・投稿日
・本文
などの情報は、すべてデータベースに保存されています。
そしてPHPは、それらのデータを取り出してHTMLとして出力する役割を担っています。
WordPressのループとは?
データベースから記事データを順番に取得し、繰り返し処理する(ループする)仕組みです。
ループの基本構造
|
1 2 3 4 5 6 7 |
<?php if (have_posts()) : // 投稿があるか確認 ?> <?php while (have_posts()) : the_post(); // 投稿があればループ開始 ?> <!-- 投稿の内容を表示 --> <?php endwhile; ?> <?php endif; ?> |
if ( have_posts() ) で記事があるか確認し、while ( have_posts() ) : the_post(); で記事を1つずつ展開します。
トップページ、投稿一覧ページ、記事詳細ページなどでコンテンツを表示する土台となります。
よくあるループの使用例
ループを使うことで、さまざまな表示が可能になります。
例えば、
- 記事一覧ページ
複数の投稿を並べて表示 - トップページ
最新記事だけ表示 - 特定カテゴリの記事一覧
条件に合う投稿だけ表示
といった表示ができます。
WordPressのテンプレートタグとは?
テンプレートタグの基本
テンプレートタグとは、タイトル、日付、本文など、特定のデータを表示するために用意された関数のことです。
たとえば、以下のように書くことで投稿タイトルを表示できます。
|
1 |
<?php the_title(); ?> |
この the_title() のような関数を「テンプレートタグ」と呼びます。
ループとテンプレートタグの関係
テンプレートタグは記事の投稿一覧や詳細ページで、動的にコンテンツ(タイトル、日付、本文など)を表示するためにループ内で使用されるのが基本です。
|
1 2 3 4 5 6 7 8 9 10 |
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink() ?>"> <h2><?php the_title(); ?></h2> <p><?php the_time(('Y.m.d')); ?></p> </a> <?php endwhile; ?> <?php endif; ?> |
このコードは、
・記事へのリンク
・記事のタイトル
・投稿日
を繰り返し表示する処理です。
ループ内で使用される主なテンプレートタグ
|
1 2 3 4 |
<?php the_title(); ?> // 記事のタイトル <?php the_time('Y.m.d'); ?> // 投稿日 <?php the_content(); ?> // 記事の本文 <?php the_permalink(); ?> // 記事のリンク |
単体で使用されるテンプレートタグ
一方で、ループの外やページ全体で1回だけ使用するテンプレートタグもあります。
これらはサイトのヘッダーやフッター、サイドバーなどで使われます。
<?php bloginfo('name'); ?>: サイト名を表示<?php get_header(); ?>: ヘッダーファイルを読み込み<?php get_footer(); ?>:フッターファイルを読み込み<?php get_sidebar(); ?>: サイドバーファイルを読み込み
まとめ
WordPressでは、PHPを使ってデータベースの情報を表示しています。
その中心となるのが、
- ループ(繰り返す)
- テンプレートタグ(表示する)
という2つの仕組みです。
この2つを理解すると、「WordPressがどうやってページを作っているのか」が見えるようになります。
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)