WordPress

【WordPress】ブログ用のアーカイブページを作る【URL指定】

 

コーポレートサイトを作っていたら、トップページとは別にブログページがある構成のサイトってよく見かけますよね?

そんな場合、ブログページはどうやって作るのか?個人的にかなりハマってしまったので、投稿(POST)のアーカイブページを作る方法についてまとめていきます

 

TOPページとは別にブログページがある構成

具体的に、どんな構成なのか?

アソビュー株式会社 のサイトを見てみましょう。

 

すると、トップページとは別に、ブログページが用意されているのがわかります。

URL構造は、以下のようになっていて、一般的な感じだと思います。

トップページ → https://www.asoview.co.jp/

ブログページ → https://www.asoview.co.jp/blog/

 

じゃあこれをどうやって実装させるのか?

 

ブログテーマであれば、トップページからカテゴリ別や月別のアーカイブページに飛べますが、「投稿全体のアーカイブページへのリンク」ってどうやるの?って感じでした。

 

 

アーカイブページの一般的なスラッグは以下のようになっており、これを変更する必要があります。

カテゴリアーカイブ: ドメイン/categor/カテゴリスラッグ

タグアーカイブ: ドメイン/tag/タグスラッグ

カスタムタクソノミーアーカイブ: ドメイン/タクソノミースラッグ/タームスラッグ

カスタム投稿タイプアーカイブ: ドメイン/投稿タイプスラッグ

投稿者アーカイブ: ドメイン/author/ユーザー名

日付アーカイブ

– 年別アーカイブ: ドメイン/date/年

– 月別アーカイブ: ドメイン/date/年/月

– 日別アーカイブ: ドメイン/date/年/月/日

投稿タイプの日付アーカイブ: ドメイン/date/…/?post_type=投稿タイプスラッグ

 

全体のアーカイブURLを「/blog」としなければいけません。

 

悩むところですよね。

 

ダメなパターン:固定ページに表示させる

これで発生する問題としては、「ページ送りが作動しない」という問題です。

プラグインを入れていても、そもそも固定ページではページ送り機能はないので、無理やりアーカイブとして機能させようとしても、エラーが起きる可能性が高いです。

 

ブログ用のアーカイブページを作る【URL指定】

URLを指定しつつ、アーカイブページを作る方法です。

WordPressって、トップページが記事一覧の表示ページとして設定されているので、投稿記事のアーカイブ設定が無効になっています

まず、投稿アーカイブページを有効にしてあげる必要がありますので、functions.phpに以下のコードを記述します。

 

/* 投稿アーカイブページの作成 */
function post_has_archive( $args, $post_type ) {
​
	if ( 'post' == $post_type ) {
		$args['rewrite'] = true;
		$args['has_archive'] = 'blog'; //スラッグ名
	}
	return $args;
​
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );

 

 この記述をすることで、トップページとは別に、アーカイブページを作ることができ、

かつ、/blogというスラッグでアーカイブページにアクセスできるようになります。

 

アーカイブのテンプレートの作り方

単純に、archive.phpをつくればオッケーですが、

スラッグがblogなので、archive-blog.phpとして作成します。

通常のアーカイブページと同じで、テンプレートを作成すればオッケー。

 

忘れてはいけないのが、「パーマリンクの更新」です。

今回のようにスラッグをいじってURLの操作をした場合、パーマリンクの更新をしないとうまく動作しない場合があります。

 

具体的には、

WordPress管理画面の[設定]-[パーマリンク設定]とクリックし、変更を保存ボタンをクリックするだけです。

これで、パーマリンク情報が更新されます。

 

 

以上で、トップページとは別にブログアーカイブページを作成することができます。

よく使うパターンだと思いますので、覚えておきましょう!