WordPressテーマ作成《連載4》archive.php、search.phpを用意

IVORYフレームワークを使って作る、シンプルで軽量なWordpressテーマを作成「連載4」

カテゴリー別や月別などのアーカイブを表示するarchive.phpと、検索結果を表示するsearch.phpを作成します。

お知らせやブログは、店舗や企業サイトでも重要なコンテンツです。
そのためこれらのアーカイブ用や検索結果表示用のファイルも重要となります。

いずれも「single.php」をもとに、アレンジして作成します。

「archive.php」に記載する内容は「shingle.php」をもとに作ります。

archive.php

<?php get_header(); ?>

<!-- Main Column -->
<div id="main" class="c9">
<?php if (is_category()) { ?>
<h2><?php single_cat_title( '', true ); ?></h2>
<?php } elseif (is_month()) { ?>
<h2><?php the_time('Y年m月'); ?>のアーカイブ</h2>
<?php } elseif (is_year()) { ?>
<h2><?php the_time('Y年'); ?>のアーカイブ</h2>
<?php } ?>
<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<article id="archive">
<h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<?php the_excerpt(); ?>
<ul class="meta">
<li class="time"><?php the_time('Y/n/j') ?></li>
<li class="category"><?php the_category('/'); ?></li>
</ul>
</article>
<?php endwhile; // end of the loop. ?>

<!-- page navi -->
<div class="pagination">
<?php posts_nav_link('&nbsp;&nbsp;&nbsp;', 'Newer', 'Older'); ?>
</div>

<?php endif; ?>
</div>

<!-- sidebar.phpの読み込み -->
<?php get_sidebar(); ?>

<!-- footer.phpの読み込み -->
<?php get_footer(); ?>

  • loopの外側で、アーカイブのタイトルを出力させます。(カテゴリー別、月別、年別)
  • loopの外側にページネーション「posts_nav_link」を付けます。
  • 記事は抜粋表示「the_excerpt」にしています。全文の場合は「the_content」を使ってください。
  • 日本語を使っている部分は環境によっては文字化けする場合がありますので、ご注意ください。

「search.php」に記載する内容は「archive.php」をもとに作ります。

search.php

<?php get_header(); ?>

<!-- Main Column -->
<div id="main" class="c9">
<h2><?php printf(__('[ %s ]で検索した結果'), get_search_query()); ?></h2>
<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<article id="archive">
<h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<?php the_excerpt(); ?>
<ul class="meta">
<li class="time"><?php the_time('Y/n/j') ?></li>
<li class="category"><?php the_category('/'); ?></li>
</ul>
</article>
<?php endwhile; // end of the loop. ?>

<!-- page navi -->
<div class="pagination">
<?php posts_nav_link('&nbsp;&nbsp;&nbsp;', 'Newer', 'Older'); ?>
</div>

<?php else : ?>
<section id="not-found">
<h2>Not Found</h2>
<p>該当する投稿がみつかりませんでした。</p>
</section>

<?php endif; ?>
</div>

<!-- sidebar.phpの読み込み -->
<?php get_sidebar(); ?>

<!-- footer.phpの読み込み -->
<?php get_footer(); ?>

  • loopの外側で、検索結果である旨のタイトルを出力させます。
  • loopの外側にページネーション「posts_nav_link」を付けます。
  • 記事は抜粋表示「the_excerpt」にしています。全文の場合は「the_content」を使ってください。
  • 日本語を使っている部分は環境によっては文字化けする場合がありますので、ご注意ください。