多个Wordpress自定义查询表现得很奇怪

时间:2013-10-13 07:23:15

标签: wordpress loops

首先,这是代码:

    <?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:不,它与此无关,有些类别显示相同的帖子两次就好......

The screenshot

1 个答案:

答案 0 :(得分:0)

事实证明我是个白痴。

答案在于将此'category_name' => $cat->name更改为此'category_name' => $cat->slug

slu is是真正的标识符。 name属性可以是“Banana”,它仍然会链接到实际类别。