WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

カテゴリのトップ(アーカイブページ)から最新年のアーカイブページにリダイレクトする

みなさんのサイトでは、たとえば「お知らせ」などの記事系コンテンツのアーカイブはどういう分類で分けていますか?

・サブカテゴリ別(企業情報・IR、キャンペーン、・・・)
・年別(2017年、2016年、・・・)
・分類していない(ページネーションだけ)

だいたいこの3つのどれかで分類していると思います。
さて、この3つのうち、年別で分類しているサイトで「お知らせ」のトップページに何を表示させたらいいでしょう?
サイドバーに年別アーカイブの一覧が並んでいるのに「お知らせ」のトップには年関係なく最新10件並べる、というのでは芸がないですよね。

その1つのソリューションとしては
 
「お知らせにリンクしたら最新年のアーカイブページにリダイレクトする」
 
を私たちはご提案したいと思います。
現に多くのサイトがそうしています。
 
では、それをWordPressで実現する方法のご紹介。
archive.php を下記のように記述します。

<?php if (is_date()){ ?>

	<?php get_header(); ?>

		<!-- 途中省略 -->

		<?php if ( have_posts() ) :
			while ( have_posts() ) : the_post();

				//記事一覧表示ループ処理

			<?php endwhile;
		endif; ?>

		<!-- 途中省略 -->

	<?php get_footer(); ?>

<?php }else{ ?>

	<?php
	$url = get_category_link( get_query_var('cat') );
	$recent_post = get_posts('posts_per_page=1');
	if (count($recent_post) > 0) {
		$recent_post_id = $recent_post[0]->ID;
		$year = get_post_time('Y',false,$recent_post_id);
	}

	wp_safe_redirect( $url.$year.'/' );
	exit;
	?>

<?php } ?>

やっていることは、
年別アーカイブのトップでは普通に記事一覧表示ループを走らせ、
カテゴリトップでは最新記事の”年”を取得してそのページにリダイレクトする、です。

これで、記事系コンテンツを年別で一覧にしたいサイトの悩み、ひとつ解決ですね。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!