我在我的Wordpress Index(index.php)页面上运行了这个循环,它显示我的帖子没有问题。
但是如果我尝试在另一个页面上使用此代码,则找不到帖子。
任何人都可以解释原因吗?
的Ta!
<?php
$args = array(
'post_type' => 'post',
);
$query = new WP_Query($args);
if ( $query->have_posts() ) :
// Start the Loop.
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
endwhile;
// Previous/next post navigation.
twentyfourteen_paging_nav();
else :
get_template_part( 'content', 'none' );
endif;
?>
答案 0 :(得分:1)
对您的代码进行了少量修改。请试试这个。为我工作。
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => -1
);
$query = new WP_Query($args);
if ( $query->have_posts() ) :
// Start the Loop.
while ( $query->have_posts() ):
$query->the_post();
get_template_part( 'content', get_post_format() );
endwhile;
// Previous/next post navigation.
twentyfourteen_paging_nav();
else :
get_template_part( 'content', 'none' );
endif;
?>
答案 1 :(得分:1)
这里有一些重点:
请添加wp_reset_postdata();每次自定义查询后。 https://codex.wordpress.org/Function_Reference/wp_reset_postdata
此外,仅查询已发布的帖子。 &#39; post_status&#39; =&GT; &#39;发布&#39;
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'publish'
);
$query = new WP_Query($args);
if ( $query->have_posts() ) :
// Start the Loop.
while ( $query->have_posts() ):
$query->the_post();
get_template_part( 'content', get_post_format() );
endwhile;
// Previous/next post navigation.
twentyfourteen_paging_nav();
// Reset post data
wp_reset_postdata();
else :
get_template_part( 'content', 'none' );
endif;
?>