Là một bổ sung cho câu trả lời @helgathevikings
Sử dụng post_group () fn mà không gây ô nhiễm không gian tên toàn cầu
- Sử dụng
static
các biến trong một lớp cho phép hành vi tương tự như có các biến toàn cục: Chúng giữ nguyên vị trí và không thay đổi, trừ khi bạn không thay đổi chúng.
- Thậm chí tốt hơn (như @Milo đề xuất trong các bình luận), hãy lấy bài đăng hiện tại từ lớp DB.
Ví dụ:
function wpse44845_add_special_post_class( $classes )
{
// Thanks to @Milo and @TomAuger for the heads-up in the comments
0 === $GLOBALS['wpdb']->current_post %3 AND $classes[] = 'YOUR CLASS';
return $classes;
}
add_filter( 'post_class','wpse44845_add_special_post_class' );
Cập nhật
Chúng ta có thể sử dụng current_post
tài sản của các $wp_query
đối tượng toàn cầu . Chúng ta hãy sử dụng một hàm ẩn danh , với use
từ khóa, để chuyển toàn cầu $wp_query
bằng cách tham chiếu ( PHP 5.3+ ):
add_filter( 'post_class', function( $classes ) use ( &$wp_query )
{
0 === $wp_query->current_post %3 AND $classes[] = 'YOUR CLASS';
return $classes;
} );
Hơn nữa, chúng tôi có thể hạn chế nó vào vòng lặp chính với một in_the_loop()
kiểm tra có điều kiện.