WordPressテンプレートタグの使い方

WordPressのテンプレートタグについて勉強した。テンプレートタグの使い方について,簡単にメモを残しておく。
 

テンプレートタグとは

テンプレートタグとは,WordPressにおいて,ブログのデータを動的に表示したり,ブログをカスタマイズしたりするときに,テンプレートの中で使われるPHPのコードである。
 

テンプレートタグの種類

テンプレートタグは,大きく以下の2つに分かれる。

  1. ループので使うテンプレートタグ
  2. ループので使うテンプレートタグ

 
WordPressにおいて,記事や固定ページの取得など,特定の操作を行うためにはループを行う必要がある。WordPressは,ループによって繰り返し,記事や固定ページを走査し,指定した条件に合致するページが見つかった場合は,HTMLとして出力する。
 

テンプレートタグの使い方

上記でテンプレートタグの種類について言及したが,まず初めに「ループの外で使うテンプレートタグ」について説明する。
 

ループの外で使うテンプレートタグ

「ループの外で使うテンプレートタグ」には,使用頻度の高いものとして,bloginfo()というテンプレートタグがある。これは,WordPressで作成されたサイトの基本的な情報を取得するためのテンプレートタグである。
以下の表にbloginfo()の使用方法をまとめる。
 

bloginfo()の使い方
コード 意味
<?php bloginfo(‘url’); ?> ブログのURLを出力する。
<?php bloginfo(‘name’); ?> ブログの名前を出力する。
<?php bloginfo(‘description’); ?> ブログのキャッチフレーズを出力する。

 

ループの中で使うテンプレートタグ

続いて,「ループの中で使うテンプレートタグ」について説明する。
以下に,WordPressにおけるループのサンプルコードを示す。
 

<?php
    
    if( have_posts() ){    //投稿があるか調べる
        //投稿がある場合の処理

        while( have_posts() ){    //投稿された記事の数だけ繰り返す

            the_post();        //投稿情報を読み込む
            the_title();       //タイトルを表示する
            the_content();     //本文を表示する

        }
    } else {
        //投稿が無い場合の処理
        echo '記事がありませんでした。';
    }
?>

 
上記は,WordPressにおける最も基本的なループの記述方法である。このサンプルコードでは,WordPressに投稿された記事をwhile文によって走査し,記事が存在する場合に限り,投稿情報・タイトル・本文を出力する。
 
以下は,上記のサンプルコードを適切に分割し,扱いやすくしたコードである。可読性は落ちるが,このように記述することで使用面で様々な応用が利くようになる。
 

<?php if( have_posts() ) : ?>
    <?php while( have_posts() ) : the_posts(); ?>
        <?php the_post(); ?>
        <?php the_title(); ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php else : ?>
    <p>記事がありませんでした。</p>        
<?php endif; ?>

 
これはWordPressに倣った書式である。このように記述することで,複数人でテンプレートを編集した場合でも,一定以上の可読性を保つことができる。
 

ループに条件を設定する

ここで,ループに条件を設定する方法を説明する。記事や固定ページを取得する際に,最新の投稿から2番目の記事のみを取得したい,という場合があるとする。そのような場合はループに条件を設定することで出力を操作することができる。
ループに条件を設定するための基本的なテンプレートタグとして,query_posts()がある。ループを行う直前にquery_posts()を記述することで,query_posts()に渡された引数をループの条件として設定することができる。
以下のコードでは,query_posts()を使用し,ループに条件を設定している。
 

<?php query_posts( array( 'post_type' => 'post', 'posts_per_page' => 1, 'offset' => 1 ) ); ?>
<?php if( have_posts() ) : ?>
    <?php while( have_posts() ) : the_posts(); ?>
        <?php the_post(); ?>
        <?php the_title(); ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php else : ?>
    <p>記事がありませんでした。</p>        
<?php endif; ?>

 
post_typeには,取得したい投稿のタイプを指定し,posts_per_pageには,記事の取得数を指定している。offsetには,最新の記事から何個目の記事を取得するかを指定している。このサンプルコードでは,通常の記事のうち,最新のものから2件目のみを取得している。
 
WordPressのテンプレートタグについての説明は以上で終了となる。これ以上のテンプレートタグの詳細情報については,WordPress Codex 日本語版を参考にしてほしい。
 
 
以上
 
 
参考
WordPressで投稿記事情報の取得方法
テンプレートタグ/query posts – WordPress Codex 日本語版
WordPressテンプレートタグとは

Article written by

コメントを残す