404 Not Foundページ(404.php)に最新記事のリストを表示するには「WP_Query」を使えばいい模様
サイトをリニューアルした際にどうしてもURLを変更or削除しなくてはいけないと時は結構あって(ブログよりもサイトに多い感じ)、その場合404 Not Foundページにアクセスしてもらうことになります。
で、せっかくのアクセスですから、該当記事がなくても最新記事への誘導はしたいな、、、
なんて思うのが人情ですが、WordPressの404 Not Foundページで最新記事を出すには少しだけ工夫が必要になってきます。
ということで、404 Not Foundページ(テンプレートでは404.php)に最新記事のリストを表示する方法を説明したいと思います。
ん、、、
なんかニッチなところの話な気はしますが、404 Not Foundページはかなり重量なページなのでサイトを制作した際には必ず設置したほうがいいですよ(ちなみに、404.phpがない場合はindex.phpにアクセスすることになります)。
余談が長くなりそうな雰囲気になってきたので、ここは省いて先に行きます^^
使う関数は「WP_Query」
細かいことはいいとして(段々雑になってきた)、実際に使ったコードはこれ
[php]<?php $my_query = new WP_Query(‘posts_per_page=25&cat=4′ );?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<div class="box">
<h3 class="title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail($page->ID,’top_thumbnail’); ?></a></div>
<?php endwhile; ?>[/php]
「posts_per_page=25」で表示する記事の件数を
「cat=4」で表示するカテゴリーのidを設定しています。
[php]<div class="box">~</div>[/php]
はデザイン的な部分なので、サイトによって変更する必要があります。
もしカテゴリーを絞らないのであれば「&cat=4」を削除すればOKです。
通常、表示数やカテゴリーの設定には「query_posts関数」を使いますが、この子はWordPress ループだけを変更するためのものになっているため、WordPressのループの外にある、404 Not Foundページでは使わないほうがいいそうです。
→WordPressのループをみて記事がないから、404 Not Foundページにきているため
ということで、404 Not Foundページに最新記事のリストを出したい場合は「WP_Query関数」を使ってください。
<参考(というより丸パクリ)>
WordPress > フォーラム > [解決済み] 404.phpで最新の投稿3件を表示できない。
Sponsored Links