hollywis's diary (はりうすブログ)

システム会社:合同会社はりうすの活動日記です

これだけは覚えよう!WordPressテンプレートタグ!

f:id:hollywis:20180905100813j:plain

こんにちは

前回は、Wprdpressテーマを一般的なheader.phpsidebar.php、footer.php、index.phpに分割して構造化しました。

hollywis.hatenablog.com

この中でphpファイルの記述中にいくつかテンプレートタグを利用してきましたので、そのテンプレートタグを深堀していきたいと思います。

なお、最小のテンプレートを作る際に利用したコードが次のような感じでした。

ファイル:index.php

<!DOCTYPE html><!--html宣言-->
<html lang="ja"><!--日本語指定-->
<head>
  <meta charset="UTF-8"><!--エンコード:UTF-8指定 -->
  <title><?php wp_title(' | ', true, 'right'); bloginfo('name'); ?></title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0 "><!--スマホ用:viewportの設定-->
  <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>"><!--CSSの呼び出し-->
  <?php wp_head(); ?><!--headの追加コード -->
</head>
<body>

  <header class="site-header">
    <h1><?php bloginfo('name'); ?></h1>
    ヘッダーをここに記述
  </header>
  <div class="container">
    <div class="wrap">
        <!-- このあたりから上の行をheader.phpに切り出すのが一般的 -->
        <div id="primary" class="main">
            メイン部分
          <?php if(is_home()) : ?><!--メインページの時 -->
              <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
              <article class="entry">
                <h2 class="entry-head"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <div class="entry-body">
                  <?php the_content(); ?>
                </div>
              </article>
              <?php endwhile; endif; ?>
          <?php elseif(is_single()) : ?><!-- 投稿ページの時 -->
            <?php while ( have_posts() ) : the_post(); ?>
            <h1><?php the_title() ?></h1>
            <div>
              <?php the_content(); ?>
            </div>
            <?php endwhile; ?>
          <?php elseif(is_page()) : ?><!-- 固定ページの時 -->
              <?php while ( have_posts() ) : the_post(); ?>
            <h1><?php the_title() ?></h1>
            <div>
              <?php the_content(); ?>
            </div>
            <?php endwhile; ?>
          <?php endif; ?>
          
        </div>
        <aside id="scecondary" class="site-side">
          サイドバーをここに記述
           <!-- (sidebar.phpに切り出すのが一般的)-->
        </aside>
        </div>
  </div>
  <!-- このあたりから下の行をfooter.phpに切り出すのが一般的-->
  <footer class="site-footer">
    フッターをここに記述
  </footer>
  <?php wp_footer(); ?><!--footerの追加コード -->
</body>
</html>

今回は、テンプレートの中で利用できるテンプレートタグをいくつか紹介します。

一般的なテンプレートタグ

まず基本となる記事中に利用できるテンプレートタグを羅列します。

  • blogingo():ブログの基本情報を表示する

  • the_title():投稿タイトルを表示する

  • the_content():投稿内容を表示する

  • the_date():投稿の日時を表示する

  • wp_list_categories():カテゴリーの一覧を表示する

特にthe_title()とthe_content()については、WordPressループの中で利用するものになります。

インクルードタグ

別ファイルに書き出して、それを共通パーツとして利用するインクルードタグを紹介紹介します。

  • get_header():ヘッダーテンプレートの読み込み

  • get_footer():フッターテンプレートの読み込み

  • get_sidebar():サイドバーテンプレートの読み込み

  • get_template_part():その他のテンプレートの読み込み

get_header()はheader.phpをget_footer()はfooter.phpを呼び出します。

get_sidebar()はsidebar.phpを、get_template_part()は指定したテンプレートを読み込みます。

get_template_part() 利用例:

予めテーマに {$slug}.php ファイルを用意しておく必要があります。

<?php get_template_part( $slug ); ?>

条件分岐タグ

if文などで利用すると便利な条件分岐タグです。特定のページの際の処理を書き込む時に利用します。

  • is_front_page():フロントページが表示されている時にTrueになります。

  • is_home():ブログのメインページが表示されている時にTrueになります。

  • is_single():個別投稿ページが表示されている時にTrueになります。なお、固定ページは含みません。

  • is_category():カテゴリーのアーカイブページが表示されている時にTrueになります。

そのほか、Wordpressの関数はこちら にありますので、一読ください。