MENU
Wordpress制作を学ぶためのブログ
Nino-Blog
Nino-Blog
  1. ホーム
  2. wordpress
  3. テーマ作り
  4. 【WordPress自作テーマ開発⑥」アーカイブページを作ろう編

【WordPress自作テーマ開発⑥」アーカイブページを作ろう編

2025 1/28
wordpress テーマ作り
2022年1月11日2025年1月28日

みなさんこんにちは!
WordPress自作テーマ開発の記事も第6回となりました。
現在完成しているページは、トップページ、投稿ページ、固定投稿ページです。
今日皆さんと一緒に作成するページはアーカイブページです。

まだ前回までの記事を見ていない方は以下のリンクからご覧ください。

【WordPress自作テーマ開発①】開発環境構築編

【WordPress自作テーマ開発②】自作テーマ制作を効率的に行うための準備

【WordPress自作テーマ開発③】トップページを作ろう

【WordPress自作テーマ開発④】下層ページを作ろう「投稿ページ編」

【WordPress自作テーマ開発⑤】下層ページを作ろう「固定ページ編」

それでは作成していきましょう!

\ NinoBlogのサービス紹介です! /

実績100件以上!集客できるホームページ制作します SEO対策とデザインで集客力UP!更新可能なホームページを!
目次

アーカイブページを作ろう

アーカイブページは、カテゴリーや日付、タグなど記事の分類ことに表示する役割を持つページでブログサイトには必須のページになっています。

カテゴリーや、タグ、日付などのアーカイブページはテーマファイルの中のarchive.phpが出力をしています。
そのため、変更を加えたいときはarchive.phpを編集することで実現できます。

現在の表示を確認

まずは、現在の表示の確認をしていきたいと思います。

作成前のアーカイブページの表示

現在の表示の状態は上の画像の通りです。
トップページのサイドバーに表示されるカテゴリーの項目をクリックして表示しています。
表示の内容としては、同じカテゴリーを持つ記事の画像、タイトル、投稿内容全てを表示している状態です。
これではユーザーが1記事づつ全ての記事を読まなければならずお目当ての記事を効率よく探すことができません。

完成図を確認

次に完成図を確認します。
以下が完成図の画像です。

アーカイブページ完成図

レイアウトはパンくずリストを表示し、記事の分類をタイトルとして表示して、その後3カラムで記事を整列させています。
サイドバーを外すことでカラム表示している記事だけにユーザーの目を惹きつける様にしています。
編集前のカテゴリーページよりもとてもスッキリし目的の記事を見つけやすくなったと思います。

_s(underscores)ダウンロード初期状態のarchive.phpを確認

アーカイブページを作成する前に_s(underscores)ダウンロード初期状態に書かれているarchive.phpのコードを確認します。
以下がarchive.phpに書かれているコードです。

<?php
/**
 * The template for displaying archive pages
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
 *
 * @package BlogCreateChallenge
 */

get_header();//header.phpを呼び出しその内容を表示しヘッダーを出力
?>

	<main id="primary" class="site-main">

		<?php if ( have_posts() ) : ?><!--if文開始、記事があれば以下の内容を実行-->

			<header class="page-header">
				<?php
				the_archive_title( '<h1 class="page-title">', '</h1>' );//アーカイブのタイトルをH1タグで出力
				the_archive_description( '<div class="archive-description">', '</div>' );//アーカイブの説明をdivタグ内に表示する
				?>
			</header><!-- .page-header -->

			<?php
			/* Start the Loop */
			while ( have_posts() ) ://while文で以下の内容を繰り返す
				the_post();
        
				get_template_part( 'template-parts/content', get_post_type() );//get_template_part関数でtemplate-partsディレクトリ内のcontent.phpを呼び出しその内容を表示

			endwhile;//while文終了

			the_posts_navigation();//ページャーを表示

		else ://記事がない場合は以下を実行

			get_template_part( 'template-parts/content', 'none' );//get_template_part関数でtemplate-partsディレクトリ内のcontent-none.phpを呼び出しその内容を表示

		endif;//if文終了
		?>

	</main>

<?php
get_sidebar();//サイドバー出力(sideber.phpを呼び出しその内容を出力)
get_footer();//フッター出力(footer.phpを呼び出しその内容を出力)

コードの意味などは上記のコード内のコメントをご覧ください。
「トップページを作ろう」の工程でヘッダー、フッターは編集済みですので今回編集するのは、コンテンツ部分だけということになります。

archive.phpにコードを追加

それでは、アーカイブページを出力しているarchive.phpにコードを書いていきましょう。
以下が追記、削除したコードになります。

<?php get_header(); ?><!--ヘッダー出力-->

<div class="ly_cont ly_cont__col"><!--コンテンツ部分開始-->
    <main class="ly_cont_main">
        <div class="post-breadcrumb">
            <?php output_breadcrumb(); ?><!--パンくずリスト表示-->
        </div>
        <?php	if ( have_posts() ) : ?><!--if文(記事があれば以下の内容を実行)-->
        <?php the_archive_title( '<h1>', '</h1>' ); ?><!--アーカイブのタイトルをh1タグで表示-->
        <div class="ly_cont_card bl_cardUnit bl_cardUnit__col4">
            <?php while ( have_posts() ) : the_post();//while文で以下の内容を記事がある分だけ繰り返し実行
						get_template_part( 'template-parts/content-archive');//get_template_part関数でtemplate-partsディレクトリ内のcontent-archive.phpを呼び出しその内容を出力
					endwhile;//while終了
				endif;//if文終了
			?>
            
         <?php the_posts_pagination(//ページャーを出力
                array(
                    'mid_size'      => 2, // 現在ページの左右に表示するページ番号の数
                    'prev_next'     => true, // 「前へ」「次へ」のリンクを表示する場合はtrue
                    'prev_text'     => __( '前へ'), // 「前へ」リンクのテキスト
                    'next_text'     => __( '次へ'), // 「次へ」リンクのテキスト
                    'type'          => 'list', // 戻り値の指定 (plain/list)
                )
        ); ?>
    </main>
</div><!--コンテンツ部分終了-->
    
<?php get_footer();?><!--フッター出力-->

コードの横にざっくりとコードの意味や役割を表すコメントを書いておりますのでご覧ください。
また、ポイントとなるコードのみ説明をします。

追加したコードの説明

●5行目〜7行目(上記のコード内での行数)

 <?php output_breadcrumb(); ?>

このコードは前々回の投稿ページを作成する際に設置したパンくずリストを表示する関数です。
パンくずリストは以下の様なものです。

この「output_breadcrumb();」一文はfunctions.phpで定義したパンくずリストを表示させる関数を実行するものです。
functions.phpなどに記述した内容は前々回のWordPress自作テーマ開発④】下層ページを作ろう「投稿ページ編」をご覧ください。

●12行目

get_template_part( 'template-parts/content-archive');

get_template_partはwordpressの関数です。
カッコ内にパスを書き特定のファイルを読み込みます。
今回はtemplate-partsディレクトリ内のcontent-archive.phpを読み込んでいます。

しかし、まだ、content-archive.phpファイルがありませんので作ってコードを書いていきたいと思います。

content-archive.phpを作成しコードを記述

archive.phpの追記でget_template_part関数で読み込んだcontent-archive.phpを作成しコードを記述したいと思います。

_s(underscores)のテーマファイル内の「template-parts」というディレクトリ内に「content-archive.php」というなまえでphpファイルを作成します。
その中の記述がアーカイブページのコンテンツ部分の主を担います。

content-archive.phpファイルを作成できたら、以下のコードを記述しましょう。

<article class="bl_card">
    <a href="<?php the_permalink(); ?>" class="bl_card_link"><!--カード全体をaタグで囲みリンクをつける-->
        <figure class="bl_card_imgWrapper">
            <img src="<?php the_post_thumbnail_url(); ?>" alt=""><!--記事のアイキャッチを表示-->
        </figure>
        <div class="bl_card_body">
            <?php the_title( '<h3 class="bl_card_ttl">', '</h3>' );?><!--記事のタイトルを出力-->
            <span class="entry-date"><?php echo get_the_date(); ?></span><!--記事の投稿日を出力-->
            <p class="bl_card_txt"><?php echo get_the_excerpt(); ?></p><!--記事の抜粋を出力-->
            <a href="<?php the_permalink(); ?>">続きを読む</a><!--抜粋の後に続きを読むのリンクを設置-->
        </div>
    </a>
</article>

コードの説明はコード横のコメントをご覧ください。
表示しているものは、記事のアイキャッチ、記事タイトル、、記事の投稿日、記事の抜粋です。
トップページのカード型の表示と同じ内容を出力しています。

表示の確認

archive.phpとcontent-archive.phpの追記ができましたので、表示の確認をしてみましょう!
以下の画像の様な表示になっていればOKです!

追記後のアーカイブページの表示

まとめ

以上でアーカイブページの完成です。
パーツファイルとしてcontent-archive.phpを作成しarchive.phpの内容をスッキリすることができました。
ベースとなるトップページを作成済みですのでそれに準じたコードを書くだけで完成してしまいましたね。

最後まで読んでいただきありがとうございました。
次回の記事では、検索結果を表示するページ、検索フォームなどサイト内検索に関連するページを作成していきたいと思います。
では、次回の記事でお会いしましょう!

Nino-BLOGのサービス紹介

実績100件以上!集客できるホームページ制作します SEO対策とデザインで集客力UP!更新可能なホームページを!
Wordpressの修正・カスタマイズを代行します 画像や文章の追加・修正・ページの追加・アップデートなど
wordpress テーマ作り
二宮 旬平
WEBデザイナー
はじめましてWEBデザイナーの二宮と申します。
このサイトでは、Wordpressについて実際に手を動かしながら学べるよう日々投稿を行なっております。
HP制作実績はこちらから
キーワード検索
人気記事
  • 【完全解説】WordPressでヘッダーを自作してみよう!(コーポレートサイト編)
    5387
  • 【コピペOK】ContactFrom7でお問い合わせフォームを設置する方法
    5071
  • 【超簡単】ContactForm7でお問い合わせ確認画面を設置してみよう
    4250
  • 【自作テーマ開発】_s(underscores)でオリジナルブログサイトを作ろう!
    2377
  • 【WordPress自作テーマ開発③】トップページを作ろう
    2291
カテゴリー
  • SEO対策
  • wordpress
    • テーマ作り
  • カスタマイズ
  • ニュース
  • ライティング
  • ライフハック
  • 副業
  • 未分類
  • 資格
アーカイブ
  • 2023年7月 (3)
  • 2023年2月 (3)
  • 2022年4月 (1)
  • 2022年2月 (1)
  • 2022年1月 (7)
  • 2021年10月 (1)
  • 2021年9月 (3)
  • 2021年8月 (8)
  • 2021年7月 (2)
  • 2021年2月 (9)
  • 2021年1月 (5)
↓Nino-blogのサービス紹介
実績100件以上!集客できるホームページ制作します SEO対策とデザインで集客力UP!更新可能なホームページを!
目次
  • HOME
  • プライバシーポリシー
  • 免責事項
  • お問い合わせ

© 2020 nino-blog

目次