Wordpress query_posts()不返回帖子列表,但不包括一个类别

时间:2013-11-07 12:55:53

标签: wordpress

我在我的Wordpress主题的一个页面模板上遇到了一些麻烦。我希望列出所有帖子,但不包括一个类别(id:4)。

下面我根据the Codex documentation使用了query_posts()

<?php get_header(); ?>

<?php while ( have_posts() ) : the_post(); ?>

    <header
            <?php
            if ( has_post_thumbnail()) {
                $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large');
                echo 'style="background-image:url(' . $large_image_url[0] . ')"';
            }
            ?>
    >
            <div class="row">
                <div class="page-title small-12 large-8 columns">
                    <h1>
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    </h1>
                </div>
            </div>
    </header>

    <?php get_template_part( 'content', 'headerbanner' ); ?>

<?php endwhile;?>

    <section class="container main-content">
            <div class="row">
                <div id="content" class="small-12 columns">
                    <?php query_posts($query_string . '&cat=-4'); ?>
                    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

                        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

                        <?php the_content(); ?>

                    <?php endwhile; else: ?>

                        <p>Sorry, no posts matched your criteria.</p>

                    <?php endif; ?>
                </div>
            </div>
    </section>

<?php get_footer(); ?>

问题是这不会返回帖子列表。相反,它只返回页面本身的详细信息(在本例中称为“博客”)。

2 个答案:

答案 0 :(得分:1)

#content内部的代码修改为以下内容解决了这个问题:

<?php query_posts('cat=-4'); ?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

    <?php get_template_part( 'content', get_post_format() ); ?>

<?php endwhile; ?>

答案 1 :(得分:0)

这里你需要传递post_type

query_posts($query_string . '&cat=-4&post_type=post');