WordPressカスタマイズ事例

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

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

・サブカテゴリ別(企業情報・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('numberposts=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 } ?>

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

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


関連するWordPressカスタマイズ事例