通常,如果我想添加自定义的post类,我会使用post_class
滤器
但是,当使用自定义循环时post_class
无法访问筛选器。
我正在尝试应用一些类,这些类将根据计数将帖子放置到列中。下面是我在不使用自定义循环时使用的示例代码;
//Add Post Class Filter
add_filter(\'post_class\', \'sk_post_class\');
function sk_post_class($classes) {
global $loop_counter;
$classes[] = \'one-third\';
if (($loop_counter + 3) % 3 == 0) {
$classes[] .= \'first\';
}
$loop_counter++;
return $classes;
}
自定义循环中的每个帖子都用
<div class = "answers"></div>
. 我想我需要修改上面的代码,以便将类添加到
<div class = "answers">
基于循环计数器。
有谁能给我指出一个正确的方向,告诉我如何才能做到这一点?
最合适的回答,由SO网友:tmgale12 整理而成
正如米洛所说,我需要使用post_class
函数使用post_class
滤器
通过添加<?php post_class(); ?>
对于循环中的div,我可以成功地修改post类。下面是我的完整代码,包含post_class
过滤器和post_class
作用
参考号:https://codex.wordpress.org/Function_Reference/post_class
<?php
//Call in the header
get_header();
//Add Post Class Filter
add_filter(\'post_class\', \'sk_post_class\');
function sk_post_class($classes) {
global $loop_counter;
$classes[] = \'one-third\';
if (($loop_counter + 2) % 2 == 0) {
$classes[] .= \'first\';
}
$loop_counter++;
return $classes;
}
$args = array (
\'post_type\' => array( \'test\' ),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post(); ?>
<div id="post-<?php the_ID(); ?>"<?php post_class(); ?>>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</div>
<?php }
} else {
echo \'No posts found\';
}
// Restore original Post Data
wp_reset_postdata();
// Call in footer
get_footer();
?>