Learning site for website creation

28:アーカイブ一覧全般テンプレート作成

  • 投稿日:2018年11月06日
  • 更新日:2018年11月13日

WordPressは用途に応じたテンプレート名があらかじめ決めれています。主なテンプレート名は以下です。

front-page.php フロントページ表示用テンプレート
home.php 主に固定ページの上にあるブログ投稿一覧表示用テンプレート
single.php 投稿詳細ページ表示用テンプレート
page.php 固定ページ表示用テンプレート
archive.php アーカイブ一覧全般表示用テンプレート
category.php カテゴリー一覧表示用テンプレート
tag.php タグ一覧表示用テンプレート
search.php 検索結果一覧表示用テンプレート
date.php 日付別一覧表示用テンプレート
404.php 404エラー表示用テンプレート
searchform.php 検索フォーム用テンプレート
comments.php コメント用テンプレート

「archive.php」は「カテゴリー一覧」「タグ」「日付・時間一覧」を表示する時に使用するテンプレートです。

このテンプレートが呼び出される時、メインループデータには該当するアーカイブデータが入ります。

以下の専用テンプレートがありますが、今回は「archive.php」ですべての一覧を表示します。

「カテゴリー一覧」のみに使用するテンプレートは「category.php」

「タグ一覧」のみに使用するテンプレートは「tag.php.php」

「日付・時間一覧」のみに使用するテンプレートは「date.php」

カテゴリー一覧

優先度(高い ← → 低い)

category-スラッグ.php

category-カテゴリーID.php

category.php

archive.php

index.php

タグ一覧

優先度(高い ← → 低い)

tag-スラッグ.php

tag-タグID.php

tag.php

archive.php

index.php

日付・時間一覧

優先度(高い ← → 低い)

date.php

archive.php

index.php

アーカイブ全般表示用テンプレート

アーカイブ一覧全般に使用できる「archive.php」を新しく作成します。

archive.php

<?php get_header(); ?>

<div class="main-loop">
  <div class="inner">

<?php // アーカイブタイトル表示 ?>
    <h1>
<?php
if (is_category()) {
  single_cat_title('カテゴリ:');
}elseif(is_tag()){
  single_tag_title('タグ:');
}elseif (is_month()) {
  the_time('Y年m月');
}

// 検索結果の記事数
$found_posts = $wp_query->found_posts;
?> の一覧:<?php echo $found_posts;?>件
    </h1>

<?php /***** メインループ開始 *****/ ?>
<?php if (have_posts()) :?>
<?php while (have_posts()) : the_post(); ?>
<?php $id = get_the_ID(); ?>
<?php // テンプレートパーツ読み込み:一覧 ?>
<?php get_template_part('content'); ?>
<?php endwhile; ?>
<?php else: ?>
<?php // テンプレートパーツ読み込み:記事なし ?>
<?php get_template_part('content','none'); ?>
<?php endif; ?>
<?php /***** メインループ終了 *****/ ?>

<?php // ページネーション ?>
<?php if (pagination()) : ?>
<div class="pagination"><?php echo pagination(); ?></div>
<?php endif; ?>

        </div><!-- /.inner -->
      </div><!-- /.main-loop -->
    </div><!-- /.main -->
    <?php get_sidebar(); ?>
  </div><!-- /.content -->

<?php
get_footer();

調べてみよう

「$wp_query」はどのような値をもっているか調べてみよう。

このページで出てくる関数

WordPress関数は「公式サイトのドキュメント」で確認しましょう。

WordPressプロパティ

$wp_query->found_posts

WordPress関数

get_header()

is_category()

single_cat_title()

is_tag()

single_tag_title()

is_month()

get_the_time('Y年m月')

have_posts()

the_post()

get_the_ID()

get_template_part()

get_sidebar()

get_footer()

オリジナル関数

pagination()

 

欠席者対応:wireframe11