0

如何在 wordpress 中不重新加载页面进行分页。我使用以下代码进行分页,但这里的页面是为每个分页重新加载的。我该怎么做才能停止 realod 页面???请建议我。

<?php
                       $page = (get_query_var('page')) ? get_query_var('page') : 1     

                       $limit=10;
                       $offset = ( $page - 1 ) * $limit;    
                      $data = $wpdb->get_results("select * from wp_products order by product_id  $sort_by
                                          LIMIT $offset,$limit ");
                 $total=$wpdb->get_results("select * from wp_products ");
            $pages = COUNT($total);
            $pages = ceil($pages / $limit);
            $querystring = "";
            foreach ($_GET as $key => $value) {
                if ($key != "page") $querystring .= "$key=$value&amp;";
            }

            // Pagination
            ?>


     <div class="pagination">
               <?php
              if( $pages > 1)
              {
                $range=1;
                $showitems = ($range * 2)+1;  
                $page1=$page;
                $prev=$page1-1;
                if($page > 1)
                {
                    echo "<a  class=\"page gradient\" ";
                    echo "href=\"?{$querystring}page=$prev";
                    echo "\">Previous</a> ";
                }
                for ($i = 1; $i <= $pages; $i++)
                   {
                        if (1 != $pages &&( !($i >= $page+$range+1 || $i <= $page-$range-1) || $pages <= $showitems ))
                             {
                                if($i == $page) 
                                { 
                                    echo  "<span class=\" page active\">".$i."</span>";
                                }
                                else
                                { 

                                echo "<a class=\"page gradient\"";
                                echo "href=\"?{$querystring}page=$i";
                                echo "\">$i</a> ";
                                }

                             }
                        }
                        if($page!=$pages)
                        {
                        if($showitems < $pages)
                            {
                                echo "..... ";
                            }
                            $page1=$page;
                            $next=$page1+1;
                            echo "<a " . ($i == $page ? "class=\"page active\" " : "class=\"page gradient\"");
                            echo "href=\"?{$querystring}page=$next";
                            echo "\">Next</a> ";
                        }
              }
                ?>                                         
                </div>
4

2 回答 2

0

只需一次获取所有页面,然后在同一页面上使用 jquery datatable js 进行分页,在这种情况下页面不会重新加载。数据表示例在这里。

http://datatables.net/examples/basic_init/alt_pagination.html

于 2012-12-24T04:50:06.367 回答
0

尝试这样的事情怎么样:

$('.page').click(function(e) {
    e.preventDefault();
    $.ajax({url: $(this).prop('href'), success: function(d) {
        var page = $(d).find('.pagination').html();
        $('.pagination').html(page);
    }});
});

这里使用jQuery禁用下一个链接的正常点击事件,抓取下一个链接的href,向下一页发出AJAX请求,保存下一个页面分页div的html,并将当前页面的分页div替换为新的一个。

于 2012-12-13T04:14:32.917 回答