特定のカテゴリからのすべての投稿を単一のページに表示したい。そのため、私は私のテーマフォルダのpage.phpファイルを編集しました。現在表示されているページを確認し、次のカテゴリからすべての投稿を読み込むための 'if-clause'を追加しました。
<?php get_header(); ?>
<div id="primary">
<div id="content" role="main">
<?php
if (is_page(26)) {
query_posts('cat=2,6,9,13&showposts=-1&orderby=date');
if (have_posts()) :
while (have_posts()) :
the_post();
get_template_part( 'content', 'page' );
endwhile;
endif;
} else {
while ( have_posts() ) :
the_post();
get_template_part( 'content', 'page' );
endwhile; // end of the loop.
}
?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_footer(); ?>
しかし26ページをロードしても何も表示されません。
カテゴリの引数を配列に追加することをお勧めします。そしてquery_posts
を使わないでください。 showposts
も非推奨です。代わりにposts_per_page
を使用してください。
$args = array (
'cat' => array(2,6,9,13),
'posts_per_page' => -1, //showposts is deprecated
'orderby' => 'date' //You can specify more filters to get the data
);
$cat_posts = new WP_query($args);
if ($cat_posts->have_posts()) : while ($cat_posts->have_posts()) : $cat_posts->the_post();
get_template_part( 'content', 'page' );
endwhile; endif;
これはまだquery_posts()
を使っているために起こります。 やめなさい。 代わりにWP_Query
を使用してください。
$extra_posts = new WP_Query( 'cat=2,6,9,13&showposts=-1&orderby=date' );
if ( $extra_posts->have_posts() )
{
while( $extra_posts->have_posts() )
{
$extra_posts->the_post();
get_template_part( 'content', 'page' );
}
wp_reset_postdata();
}