主に技術的なことを書くブログ

浅めにマークアップ&フロントエンドの技術的なことをメモしていましたが、ざっくばらんに書いています。

WordPressで、インデックスとアーカイヴ&検索結果で条件分岐する

WorePressのブログで、インデックスはタイトルや本文全部表示させて、アーカイヴ&検索結果は、タイトルと概要文だけにして表示件数も10件にする条件分岐。

<?php if (is_home() || is_page()) : ?>

インデックスページ / 個別ページの表示内容

<?php elseif (is_archive() || is_search()) : ?>
<?php query_posts($query_string .'&posts_per_page=10'); ?>

アーカイヴ&検索結果ページの表示内容

<?php endif; ?>

WordPressは、テンプレートで、archive.phpを作ると、勝手に、archive.phpのテンプレートで表示してくれるみたいなんですが、検索結果はindex.phpの表示の仕方で表示されてしまうので、そういうときは、archive.phpはやめて、index.phpに上のような条件分岐で振り分けれるといけます。

さらに

<?php query_posts($query_string .'&posts_per_page=10&order=asc'); ?>

と言う感じで、「&order=asc」をつけると新しい順から、古い順になります。

query_postsとページ送り

僕も、上記リンクのようにページ送りで「ページが見つかりません」的な問題が起こったのですが、そのときは、その直前のif文で「in_category()」だったのを「is_category()」にしたら直りました。


参考:
WordPressで特定のページのみコンテンツを表示する方法