Wordpress $wp_query 未返回正确的max_num_pages

Wordpress $wp_query not returning correct max_num_pages

提问人:Samuel Shumake 提问时间:10/26/2023 更新时间:10/26/2023 访问量:10

问:

我正在尝试在帖子上设置一个加载更多按钮,但我似乎无法让 $wp_query->max_num_pages正常工作。它似乎返回用户所在页面的信息,而不是被查询的帖子的信息,因为 $wp_query->max_num_pages 总是返回 0,即使有很多帖子需要分页。我一直在关注这篇文章 https://rudrastyh.com/wordpress/load-more-posts-ajax.html

在我的帖子模板中:

<?php
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $params = array(
    'post_type' => 'location',
    'post_status' => 'publish',
    'posts_per_page' => 3,
    'orderby' => 'publish_date',
    'order' => 'DESC',
    'paged' => $paged
  );

  $postslist = new WP_Query($params);
  if ($postslist->have_posts()) : ?>
    <div id="response">
      <?php 
        while ($postslist->have_posts()) : $postslist->the_post();
          get_template_part("templates/post-item");
        endwhile; 
      ?>
    </div>
    <?php global $wp_query;
    if ($wp_query->max_num_pages > 1): ?>
      <button id="loadmore">Load More</button>
    <?php endif;
    wp_reset_postdata();
  endif; ?>

然后,在我的加载更多.php文件中:

  global $wp_query; 

  wp_register_script("loadmore", get_template_directory_uri() . "/dist/js/loadmore.js", null, date("H:i:s"), true );

  wp_localize_script( "loadmore", "loadmore_params", array(
    "ajaxurl" => site_url() . "/wp-admin/admin-ajax.php",
    "posts" => json_encode( $wp_query->query_vars ),
    "current_page" => get_query_var( "paged" ) ? get_query_var("paged") : 1,
    "max_page" => $wp_query->max_num_pages
  ));

  wp_enqueue_script( "loadmore" );

但是,如果我打印出 loadmore_params.max_page,它会返回 0(即使肯定有超过 0 页)。

阿贾克斯 WordPress

评论


答: 暂无答案