1

首先,这是代码:

    <?php
    $categories = get_categories();

    foreach ($categories as $cat) { if ($cat->count >= 4) { ?>
    <section class="home-section row">
        <div class="large-12 columns">
            <h3 class="ug-home-title"><span><?=$cat->name;?></span></h3>
            <div class="row">
                <div class="large-6 columns">
                    <?php
                        $args = array(
                            'post_type' => 'post',
                            'category_name' => $cat->name,
                            'posts_per_page' => 1
                        );
                        $query = new WP_Query($args);
                        while ($query->have_posts()) : $query->the_post();
                    ?>
                    <article class="ug-panel">
                        <ul class="ug-tag-list">
                            <?php
                                $post_categories = wp_get_post_categories( $post->ID );
                                foreach ($post_categories as $c) {
                                    echo '<li><a href="'.get_category_link( get_cat_ID(get_category( $c )->name) ).'">'.get_category( $c )->name.'</a></li>';
                                }
                            ?>
                        </ul>

                        <?php (has_post_thumbnail()) ? the_post_thumbnail() : displayBackupImage(); ?>

                        <footer class="ug-panel-inner">
                            <p><em><?= 'il y a '.human_time_diff( get_the_time('U'), current_time('timestamp') ); ?></em></p>
                            <h4><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4>
                        </footer>
                    </article>
                    <?php endwhile; wp_reset_postdata()?>
                </div>
                <div class="large-6 columns">
                    <ul class="ug-article-list">
                        <?php
                            $args = array(
                                'post_type' => 'post',
                                'category_name' => $cat->name,
                                'posts_per_page' => 3,
                                'offset' => 1
                            );
                            $query = new WP_Query($args);
                            while ($query->have_posts()) : $query->the_post();
                        ?>
                        <li>
                            <article class="clearfix">
                                <a href="<?php echo get_permalink(); ?>" class="left picture">
                                    <?php (has_post_thumbnail()) ? the_post_thumbnail() : displayBackupImage(); ?>
                                </a>
                                <h5><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a> <br><small>publié il y a <em><?= human_time_diff( get_the_time('U'), current_time('timestamp') ); ?></em></small></h5>
                            </article>
                        </li>
                        <?php endwhile; wp_reset_postdata();?>
                    </ul>
                </div>
            </div>
        </div>
    </section>
    <hr class="home-hr">            
    <?php }} ?>

如您所见,对于包含超过 4 个帖子的类别,首先有一个简单的 foreach 循环。然后,我使用两个不同的自定义查询在我的代码中的两个不同位置显示这些帖子。

这工作得很好,但由于某种原因,尽管它们包含帖子,但它总是会在某些类别上失败,我不知道为什么。我附上了一个截图,所以你可以看到输出。

非常感谢任何答案。

编辑:当一个帖子同时属于两个类别时,这似乎会发生......可能是冲突吗?我在这里真的很茫然。

编辑2:不,这与此无关,某些类别显示相同的帖子两次就好了...

截图

4

1 回答 1

0

原来我是个白痴。

答案在于把这个改成'category_name' => $cat->name这个'category_name' => $cat->slug

蛞蝓是真正的标识符。该name属性可以是“香蕉”,它仍将链接到实际类别。

于 2013-10-17T18:08:45.937 回答