循环中最后一个POST上的css类(自定义查询)

时间:2012-03-23 作者:byronyasgur

我一直在使用this 我想尝试这样做,但我遇到了一些困难。我有一个自定义的帖子类型,介质,我正在处理归档介质。php模板。当我删除if 在代码之外,它确实添加了类,但当然也会添加到每个帖子中。我已经确定$wp_query->current_post 没有返回值,所以我觉得我不能正确使用它。我的函数中有代码。php文件。抄本上说循环中有当前的\\u帖子,所以我有点困惑。

add_filter(\'post_class\', \'my_post_class\');
function my_post_class($classes){
  global $wp_query;
  if(($wp_query->current_post+1) == $wp_query->post_count) $classes[] = \'last\';
  return $classes;
}

1 个回复
最合适的回答,由SO网友:byronyasgur 整理而成

我意识到$wp\\U查询不适用于我使用自定义查询的地方WP_query. 我想这是很明显的,当你知道的时候,但我没有,所以这里是调整后的代码,以防它对其他业余爱好者有好处!请注意,$media\\u query、$events\\u query等是WP_query 当我进行自定义查询时,我在各自的归档页面上创建了这些内容,因此您需要使用您用于查询的任何内容来执行这些内容的您自己的版本。我这样说是为了防止有人认为这些是wordpress定义的,并试图复制和粘贴。($wp\\U查询本身当然是。)

// Add css class \'last\' to last posts in archive query [ used in conjunction with post_class(\'archive-post\') ]
add_filter(\'post_class\', \'last_post_class\');
function last_post_class($classes) {
    // Regular Archives
  global $wp_query;
  if(($wp_query->current_post+1) == $wp_query->post_count)
        $classes[] = \'last\';

    // Media Archive
    global $media_query;
  if(($media_query->current_post+1) == $media_query->post_count)
        $classes[] = \'last\';

    // Events Archive
    global $events_query;
  if(($events_query->current_post+1) == $events_query->post_count)
        $classes[] = \'last\';

    // Author Archive
    global $author_query;
  if(($author_query->current_post+1) == $author_query->post_count)
        $classes[] = \'last\';

  return $classes;
}

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post