답변:
내 접근 방식. 추가 기능이나 필터가 없습니다. :)
<?php $GLOBALS['wpdb']->current_post = 0; ?>
<div <?php post_class( 0 === ++$GLOBALS['wpdb']->current_post % 3 ? 'third' : '' ); ?>>
대안 :
<div <?php post_class( 0 === ++$GLOBALS['wpdb']->wpse_post_counter % 3 ? 'third' : '' ); ?>>
Notice: Undefined property: wpdb::$current_post in
@helgathevikings 답변 외에도
static
클래스 내에서 변수를 사용하면 전역 변수를 갖는 것과 동일한 동작을 수행 할 수 있습니다. 변수를 변경하지 않으면 그대로 유지되고 변경되지 않습니다.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' );
current_post
전역 $wp_query
객체 의 속성을 활용할 수 있습니다. 키워드 와 함께 익명 함수를 사용하여 참조로 use
전역을 전달 합시다$wp_query
( PHP 5.3+ ).
add_filter( 'post_class', function( $classes ) use ( &$wp_query )
{
0 === $wp_query->current_post %3 AND $classes[] = 'YOUR CLASS';
return $classes;
} );
또한 조건부 검사 를 통해 메인 루프 로 제한 할 수 in_the_loop()
있습니다.
$wpdb->current_post
않습니까?
테마가 post_class ()를 사용하여 포스트 클래스를 생성하는 경우 시도해 볼 수 있습니다. 나는 그것이 페이지 매김을 처리하는 방법을 100 % 확신하지 못한다 .b / ci 로컬 설치에 테스트 할 충분한 게시물이 없다.
add_filter('post_class','wpa_44845');
global $current_count;
$current_count = 1;
function wpa_44845( $classes ){
global $current_count;
if ($current_count %3 == 0 ) $classes[] = 'special-class';
$current_count++;
return $classes;
}
static
a 대신 var를 사용할 수 있다고 생각합니다 global
. 어쨌든 : +1.
$wpdb->current_post
다른 변수를 만들지 않고도 사용할 수 있습니다 .