【问题标题】:Infinite scrolling in homepage首页无限滚动
【发布时间】:2021-06-04 19:19:18
【问题描述】:

使用“Oxygen Builder”,我创建了一个非常轻的页面(部分、重复器、div、标题:仅此而已),代码块中包含“无限滚动”的代码:一切运行良好。 “无限滚动”滚动所有页面的所有帖子。

我将此页面设为主页: “无限滚动”运行但只有第一页的帖子。 第一页无限重复。 我不知道问题是来自 Wordpress 还是 Oxygen Builder。 首先,我尝试使用“Yith Infinite Scrolling”(使用“Oxygen Builder”),我遇到了同样的问题。 当然,当我设置另一个主页时,无限滚动再次运行良好。 你知道怎么解决吗?

我使用的JS代码是:

<script src="https://unpkg.com/infinite-scroll@4/dist/infinite-scroll.pkgd.min.js"></script>
<script>
setTimeout(() => {
    (function($) {
        $('#_dynamic_list-3-227.oxy-dynamic-list').infiniteScroll({
            path: '.next',
            append: '.infinite-scroll',
            history: false,
            hideNav: '.oxy-repeater-pages',
        });
    })(jQuery);
},500)
</script>

【问题讨论】:

    标签: javascript wordpress infinite-scroll website-homepage


    【解决方案1】:

    我在 Facebook 群组上从 Christina 那里找到了这个解决方案:

    我遇到了同样的问题。支持给了我这个答案,这是有效的: 静态主页上的分页存在一个已知问题。为了让它工作,我在您的中继器上方添加了一个代码块,并在 PHP 和 HTML 选项卡上使用以下代码:

    <?php
        if ( get_query_var('paged') ) {
            $paged = get_query_var('paged');
        } elseif ( get_query_var('page') ) {
            $paged = get_query_var('page');
        }
        else {
            $paged = 1;
        }
        query_posts('posts_per_page=2&paged=' . $paged);
    ?>
    

    如果以后更改每页的项目数,也需要在上面的代码中进行更改。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。它发生在 3.9 之前的版本中。 自 3.9 BETA 1 起,此问题已得到解决。

      同时,您可以在子主题的插件代码 sn-p 或 functions.php 中添加此项。我之前从 oxyextras 支持那里得到了这段代码:https://gist.github.com/wplit/8548f32ca9e703fe62284cd23d5c1245

      add_action( 'pre_get_posts', 'pagination_fix_static_homepage' );
      function pagination_fix_static_homepage( $query ) {
          $front_page_id        = get_option( 'page_on_front' );
          $current_page_id      = $query->get( 'page_id' );
          $is_static_front_page = 'page' === get_option( 'show_on_front' );
          
          if ( $is_static_front_page && $front_page_id == $current_page_id  ) {
              if ( get_query_var( 'paged' ) ) {
                  $paged = get_query_var( 'paged' );
              } elseif ( get_query_var( 'page' ) ) {
                  $paged = get_query_var( 'page' );
              } else {
                  $paged = 1;
              }
              $paged = intval( $paged );
              $query->set( 'paged', $paged );
          }
          return $query;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 2019-11-26
        相关资源
        最近更新 更多