【问题标题】:How to Add a Class to first post in Wordpress Query?如何在 Wordpress 查询中为第一篇文章添加一个类?
【发布时间】:2013-11-20 18:28:00
【问题描述】:

我在一个页面上运行多个循环,并且在其中一个循环上我需要向第一个帖子添加一个类,这样我可以抵消边距。如何从 wp_query 向第一个帖子添加一个类?

<?php $my_query = new WP_Query('category_name=news&posts_per_page=3');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate[] = $post->ID ?>
    <div class="post-container">
    </div>
<?php endwhile; ?>

我需要将该类添加到具有“post-container”类的主 div 容器中。

谢谢你下面的修复工作完美,但如果我想将它用于正常循环而不是 wp_query,我该怎么办?像这样

<?php query_posts(array('showposts' => 3, 'post__not_in'=>$do_not_duplicate));
if (have_posts()) : while (have_posts()) : the_post(); ?> 

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    也许这会有所帮助:

    $first = false;
    if( $my_query->current_post == 0 && !is_paged() ) { $first = true; }
    

    然后你的行与你这样做:

    <div class="post-container <?= ($first ? 'classname' : ''); ?>">
    

    未测试语法错误。

    所以试试这个:

    <?php 
    $first = true;
    query_posts(array('showposts' => 3, 'post__not_in'=>$do_not_duplicate));
    if (have_posts()) {
        while (have_posts()) {
            the_post();
    
            echo '<div class="post-container '.($first ? 'classname' : '').'"></div>';
    
            if ($first) {
                $first = false;
            }
        }
    }
    

    【讨论】:

    • 谢谢,但是我在哪里定义类,我应该把它放在“post-container”div中吗?
    • 谢谢你,当我将它用于 $my_query 时效果很好,但是如果我想将它与普通的 wordpress 循环一起使用该怎么办?我已经在上面添加了代码
    • 添加了另一个示例
    • 谢谢,这篇文章帮了很多忙,尽管有没有办法可以在最后一篇文章而不是第一篇文章中添加一个类?
    • 我从来没有这样做过,但逻辑是一样的。你需要统计找到了多少个帖子,然后做计数器,当计数器等于找到的帖子总数时,添加类。
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多