0

我在我的 Wordpress 主题的一个页面模板中遇到了一些问题。我希望列出所有帖子,但排除一个类别的帖子(id:4)。

下面我query_posts()按照Codex 文档使用:

<?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(); ?>

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

4

2 回答 2

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; ?>
于 2013-11-07T13:46:44.170 回答
0

在这里你需要通过 post_type

query_posts($query_string . '&cat=-4&post_type=post');
于 2013-11-07T12:58:06.043 回答