Tôi đang tìm kiếm một cách đơn giản để xác định xem có nên sử dụng posts_nav_link()
chức năng hay không và tất cả các giải pháp tôi tìm thấy trực tuyến đều quá phức tạp hoặc không đáng tin cậy. Ví dụ, nhiều người đề xuất sử dụng $paged
biến toàn cục, nhưng tôi thấy rằng biến này trả về cùng một giá trị cho trang đầu tiên, ngay cả khi trang đầu tiên là trang duy nhất!
Vì vậy, tôi đã đào sâu vào wp-includes/link-template.php
tệp và thấy rằng posts_nav_link()
hàm chỉ đơn giản là xuất giá trị trả về của hàm khác:
/**
* Display post pages link navigation for previous and next pages.
*
* @since 0.71
*
* @param string $sep Optional. Separator for posts navigation links.
* @param string $prelabel Optional. Label for previous pages.
* @param string $nxtlabel Optional Label for next pages.
*/
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
$args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
echo get_posts_nav_link($args);
}
Sử dụng kiến thức này, chúng tôi có thể tạo một cách đơn giản và hiệu quả để xác định xem chúng tôi có cần thêm liên kết để điều hướng giữa các trang hay không:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// do not use posts_nav_link()
} else {
// use posts_nav_link()
}
Ban đầu được đăng trên blog của tôi ở đây .
get_query_var( 'paged' )
hai lần là dư thừa. Tham số thứ hai tùy chọn của hàm đó là giá trị mặc định. Vì vậy, bạn có thể đơn giản hóa nó thành:$paged = get_query_var( 'paged', 1 );