使用get_post覆盖最多显示的博客页面

时间:2019-10-12 作者:Alfrex92

你知道如何用get\\u帖子覆盖最多显示的博客页面吗?我试过使用NumberPost,但不起作用。

$args1 = array(
       \'post_type\' => \'wpcp-events\'
       \'numberposts\'       => -1,
            );
$posts = get_posts($args1);

while (have_posts()) : the_post();
  get_template_part(\'template-parts/event\');

  endwhile;
rewind_posts();

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

在您的代码示例中,您混合了两种情况。具有get_posts() 您将获得一个帖子数组,可以在自定义循环中使用。

$args1 = array(
  \'post_type\'   => \'wpcp-events\'
  \'numberposts\' => -1,
);
$events = get_posts($args1);

if ( $events ) {
  foreach ( $events as $post ) {
    setup_postdata( $post ); // make Loop tags available, sets current iteration to global $post
    get_template_part(\'template-parts/event\');
  }
  wp_reset_postdata(); // reset global $post
}
Thewhile (have_posts()) : the_post(); 零件处理主循环。如果要更改其工作方式,可以使用pre_get_posts(). 我想这应该行得通,

function change_posts_per_page($query) {
  if ( ! is_admin() && $query->is_main_query() && \'wpcp-events\' === $query->query[\'post_type\'] ) {
    $query->set( \'posts_per_page\', 50 );
  }
}
add_action( \'pre_get_posts\', \'change_posts_per_page\' );

相关推荐