it-swarm-ko.tech

각 게시물의 대체 post_class

칼럼에 다른 하이라이트를 제공하기 위해 게시물에 교대 (심지어 홀수 ...) 클래스가 있어야합니다. 가장 좋은 방법은 post_class ()에 첨부하여 post_class ()의 모든 인스턴스에 추가하는 것입니다. 아래는이 시점에서이 효과를 얻기위한 코드입니다.

<?php 

// setting other variables for alternating categories
$style_classes = array('even', 'odd');
$style_counter = 0;
?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>

<div class="<?php $k = $style_counter%2; echo $style_classes[$k]; $style_counter++; ?>">

<?php the_cotent(); ?>

</div>

<?php endwhile; ?>

<?php endif; ?>
2
curtismchale

functions.php에 다음 코드를 추가해야합니다.

add_filter ( 'post_class' , 'my_post_class' );
global $current_class;
$current_class = 'odd';

function my_post_class ( $classes ) { 
   global $current_class;
   $classes[] = $current_class;

   $current_class = ($current_class == 'odd') ? 'even' : 'odd';

   return $classes;
}

이렇게하면 페이지의 모든 기이 한 게시물에 '홀수'클래스가 있고 모든 짝수 글은 테마에 post_class()을 (를) 사용하여 'even'클래스를 갖게됩니다.

6
Adhip Gupta

다른 콘텐츠에 특정 클래스를 추가하려면 다른 솔루션이 필요합니다. 예를 들어, 루프 만 :

add_filter( 'post_class', 'my_post_class' );

function my_post_class( $classes ) {

  if ( ! is_single() ) {
    global $wp_query;

    // Set "odd" or "even" class if is not single
    $classes[] = $wp_query->current_post % 2 == 0 ? 'even' : 'odd' ;
  }

  return $classes;
}

단일 콘텐츠를 표시 할 때 "짝수"또는 "홀수"클래스를 추가하고 싶지 않으므로.

1
Marco Godínez

이 작업은 추가 클래스에서 post_class() 로 전달됩니다.

<?php $c = 0; ?>
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div <?php post_class((++$c % 2 === 0) ? 'odd' : 'even'); ?>>
            <?php the_content(); ?>
        </div>
    <?php endwhile; ?>
<?php endif; ?>

편집 :여기 페이지의 수를 추적 할 post_class() 버전을 만드는 방법이 있습니다. 이제 새로운 이름 인 oddeven_post_class()을 사용 하겠지만 원하는대로 작동합니다. 이 작업을 functions.php:에 넣기 만하면됩니다.

/* Drop this block into functions.php */
class MyCounter {
    var $c = 0;
    function increment(){
        ++$this->c;
        return;
    }
    function oddOrEven(){
        $out = ($this->c % 2 === 0) ? 'odd' : 'even';
        $this->increment();
        return $out;
    }
}
$my_instance = new MyCounter();
function post_class_oddeven() {
    global $my_instance;
    ob_start();
    post_class($my_instance->oddOrEven());
    $str = ob_get_contents();
    ob_end_clean();
    echo $str;
}
/* end block */

따라서 그것을 호출하려면 어디에서든지 post_class_oddeven()을 호출하여 테마에서 post_class()을 사용하십시오.

1
artlung

당신은 똑 바른 앞으로 CSS로 이것을 할 수있다. 예를 들어 22 번째 주제에서 루프가 div의 "main"에있는 위치는 다음과 같습니다.

#main .post {
    color: red;
}

#main .post:nth-of-type(2n) {
    color: blue;
}

속임수를 쓸 것이다.

1
ronald