2009-06-23 29 views
16

Tôi đã thêm vòng lặp tùy chỉnh sau trong template Wordpress của tôi:Tìm số trang hiện tại trong Wordpress

$args = array(
    'category__not_in' => array($featured_cat->term_id), 
    'posts_per_page' => 10, 
    'post__not_in' => array($recent_post) 
); 
query_posts($args); 

Đối với pagination để làm việc, tôi đoán tôi cần phải vượt qua một arg paged với số trang hiện tại. Cách để có được số trang hiện tại trong Wordpress là gì?

Trả lời

54

Không gần một hệ thống wordpress để kiểm tra này ra tại mo, nhưng bạn sẽ có thể sử dụng:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

(rõ ràng là mặc định là 1, nếu nó chưa được gửi đi thông qua).

+1

bạn thực sự không cần mặc định là 1. mặc định là 0 và nếu bạn chuyển 'paged = 0' thành query_posts, nó hoạt động giống như 'paged = 1'. (ít nhất, điều này đúng trong wordpress 3.0) – Kip

+3

Bạn thậm chí không cần phải sử dụng so sánh. Kể từ WP 3.9.0, '$ paged = get_query_var ('paged', $ default)' cho phép đối số thứ hai có giá trị mặc định. Vì vậy, '$ paged = get_query_var ('paged', 1)' hoặc '$ paged = get_query_var ('paged', 0)' (như @Kip chú ý) sẽ thực hiện. –

2

Sử dụng get_query_var('paged') như thế này

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array('category__not_in' => array($featured_cat->term_id), 'posts_per_page' => 10, 'post__not_in' => array($recent_post), 'paged' => $paged); 
query_posts($args); 
?> 
3

này đã làm việc cho tôi:

<?php echo '(Page '.$page.' of '.$wp_query->max_num_pages.')'; ?> 
+0

'$ page' luôn trả về' 1'. –

4

Đối với 'Trang x của y' Tôi sử dụng này:

<?php 

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
echo $paged.' of '.$wp_query->max_num_pages; 

?> 
13

sử dụng biến $ paged.

global $paged; 
echo $paged; 
+2

Chỉ cần nhận thức được điều này, rằng nó sẽ là 0 trên trang 1. – Mark

Các vấn đề liên quan