最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

get posts - Override Blog pages show at most with get_posts

programmeradmin0浏览0评论

any idea how to override Blog pages show at most with get_posts? I tried with numberposts but it isn't working.

$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();

any idea how to override Blog pages show at most with get_posts? I tried with numberposts but it isn't working.

$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();
Share Improve this question asked Oct 12, 2019 at 11:06 Alfrex92Alfrex92 1316 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

In your code example, you're mixing two things. With get_posts() you'll get an array of posts, which you can use in a custom loop.

$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
}

The while (have_posts()) : the_post(); part handles the main loop. If you want to change how it works, you can use pre_get_posts(). I think this should work,

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' );
发布评论

评论列表(0)

  1. 暂无评论