Phân trang chỉ giải quyết trang đầu tiên


7

Phân trang của tôi chỉ liên kết đến cùng một bài viết trên trang nhất của tôi.

Tôi có 3 bài viết trên trang trước của mình, khi tôi nhấn tiếp theo, nó sẽ chuyển đến / page / 2 nhưng chỉ hiển thị 3 bài viết giống nhau, không có nút trước đó. Nút tiếp theo vẫn ở đó, nhưng vẫn chuyển đến trang / 1

Đây là truy vấn đầy đủ.

<?php

            query_posts('post_type=post&posts_per_page=3');

            if ( have_posts() ) : while ( have_posts() ) : the_post();

            $category = choose_one_category(get_the_category());

            switch ($category){
                case "Festival News":
                    $left[] = $post;
                    break;
                case "Industry News":
                    $centre[] = $post;
                    break;
                case "Other":
                    $right[] = $post;
                    break;
            }


            endwhile; 
            ?>
            <div class="custom-pagination">

            <div ><?php previous_posts_link('&laquo; Previous') ?></div>

            <div ><?php next_posts_link('Next &raquo;') ?></div>
            </div>
            <?php endif;



            ?>

Câu trả lời:


11

Dựa trên những gì Rarst đã nói, tôi khá chắc chắn rằng chuỗi truy vấn sẽ giữ lại các truy vấn 'được phân trang' ngay cả khi WP_Queryloại bỏ nó là không liên quan. Bạn có thể thử thay thế dòng bài viết truy vấn của mình bằng dòng này:

global $query_string;
parse_str( $query_string, $my_query_array );
$paged = ( isset( $my_query_array['paged'] ) && !empty( $my_query_array['paged'] ) ) ? $my_query_array['paged'] : 1;
query_posts('post_type=post&posts_per_page=3&paged='.$paged);

1
ĐÚNG!! Bây giờ, bất kỳ cơ hội bạn có thể giải thích những gì đang xảy ra? Để tôi và những người khác có thể hiểu nó? Rất cám ơn
Mild Fuzz

ví dụ: tôi có thể sử dụng điều này với các đối tượng WP_Query tùy chỉnh không? Tôi có một vài cái cũng không hoạt động.
Fuzz nhẹ

1

Các chức năng chiếu có nghĩa là được sử dụng với Vòng lặp chính. Họ đang dựa vào các biến toàn cục $paged$wp_query, không được đặt bởi vòng lặp tùy chỉnh của bạn.


Làm thế nào tôi có thể sửa điều này?
Fuzz nhẹ

Nếu đây là nội dung / vòng lặp chính của trang bạn cần làm việc query_posts(). Nếu không, bạn có thể cần phải viết mã phân trang của riêng mình, ít nhất tôi không biết cách làm cho các hàm phân trang gốc hoạt động với vòng lặp thứ cấp.
Hết

Tôi đã tăng cường các vòng lặp ở trên. Tôi nhận được một nút tiếp theo, nhưng bài viết là những người từ trang đầu.
Fuzz nhẹ

Tại sao họ không nên? Bạn không chỉ định bất cứ điều gì trong truy vấn ngoại trừ loại và số lượng bài. Đồng thời xem Bảo quản truy vấn gốc
Rarst

1

Nếu bạn vấp phải cái này, hãy thử cách sau: " Deamon dễ dàng phân trang ". Cài đặt, kích hoạt, sử dụng thẻ mẫu bên trong mẫu của bạn ...

Liên kết đến biểu định kiểu có thể được tìm thấy bên trong ý chính của tôi hoặc bên dưới nhận xét plugin hàng đầu.


0

Đây có phải trên trang chủ của bạn? Tôi cũng gặp vấn đề này và như một cách giải quyết, tôi chỉ cần tạo liên kết trên trang đầu tiên trỏ đến http://www.yoursite.com/c Ab / page / 2 / để nó bỏ qua bộ giá trị đầu tiên cho trang một. Từ đó, các liên kết phân trang hoạt động chính xác. Đây là một ví dụ .


chỉ một chút hacky
Mild Fuzz

đồng ý nhưng về mặt thời gian, nó có thể là một vị cứu tinh. Tháng trước, tôi đã phải xây dựng 14 trang WP trong 2 tuần và thật không may, phải dùng đến hack cho thời gian.
moetser
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.