wordpress循环多个类别

时间:2013-02-26 20:20:13

标签: wordpress-theming wordpress

我想要实现的目标

<div>
posts from category "vitejte"
</div>
<div>
posts from category "novinky"
</div>

这是我的index.php代码

<?php get_header(); ?>

    <div class="body_resize">
        <div class="body">
            <div class="body_small2">
            <?php if (have_posts()) :  while (have_posts()) : the_post(); ?>

                <?php if ( in_category('vitejte') ) { ?>

                    <h2><?php the_title(); ?></h2>
                    <img src="wp-content/themes/trywp/images/img_1.jpg" alt="picture" width="353" height="102" />
                    <?php the_content('Read More...'); ?>
                    <div class="clr"></div>

                <?php } else { ?>
                    <?php _e('Prosím vytvořte článek v kategorii "vitejte"'); ?>
                <?php } ?>
                <div class="line"></div>
            </div>
            <?php endwhile; else: ?>
                <?php _e('Prosím vytvořte článek v kategorii "vitejte2"'); ?>
            <?php endif; ?>

            <?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
            <div class="body_small">
                <h2>Novinky</h2>
                <?php if ( in_category('novinky') ) { ?>
                    <p class="data"> 20 / May / 09</p>
                    <div class="clr"></div>
                    <p><?php the_content('Read More...'); ?> <a href="#">&gt;&gt;</a></p>
                    <div class="clr"></div>

                <?php } else { ?>
                    <?php _e('Prosím vytvořte článek v kategorii "novinky"'); ?>
                <?php } ?>
                <div class="line"></div>
            </div>
            <?php endwhile; else: ?>
                <?php _e('Prosím vytvořte článek v kategorii "vitejte2"'); ?>
            <?php endif; ?>


    <?php get_footer(); ?>

问题是它按要求返回帖子但它也返回

  

Prosímvywvořtečlánekvkategorii“vitejte”

  

Prosímvywvořtečlánekvkategorii“novinky”

在else语句中,不应返回 顺便说一句:文字意味着像“请在”vitejte“类别中创建帖子

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

一旦你完成了循环,have_posts()将是假的 - 你会在else之后看到endwhile的内容。尝试在第二个循环之前调用rewind_posts()(即在第二个<?php if (have_posts()) : while (have_posts()) : the_post(); ?>之前)。这应该允许你再次遍历帖子。