WP_RESET_POSTData()未按预期工作

时间:2017-08-05 作者:maidi

在我的主题中,我想显示某个类别(ID=1)帖子的缩略图和标题。点击缩略图后,文章内容,。。。应显示。自从我添加wp_query 类别过滤部分,若我点击一篇文章,它总是显示相应类别的所有帖子。我已经添加了wp_reset_postdata()wp_reset_query() 但似乎没有效果。我还可以做些什么来限制只显示单击的帖子,而不是整个查询?

指数php

<?php
        $general_post = new WP_query();
        $general_post->query(\'cat=1\');
        if($general_post->have_posts()) {
            while($general_post->have_posts()) {
                $general_post->the_post();
                get_template_part(\'content\', get_post_format());
            }
        }
        wp_reset_postdata();
?>
模板文件:

//template for preview on index
        <?php if (is_home() ) { ?>
                <div>
                    <a href=<?php echo get_permalink();?>><?php the_post_thumbnail(array(300,600)); ?>
                    <header>
                        <h1 class="entry-title"><?php the_title()?></h1>
                    </header>
                    </a>
                </div>
        <?php }
        ?>

//template for whole post
        <?php if (!is_home() ) { ?>
            <?php the_post_thumbnail(\'full\'); ?>>
            <?php the_title()?>
            <?php the_content(); ?>
             //....
        <?php } ?>

1 个回复
最合适的回答,由SO网友:Boris Kuzmanov 整理而成

如果这应该是主循环,那么修改主循环的更好方法是使用pre_get_posts 滤器对于次要查询,可以使用WP\\u查询,但您设置查询参数的方式不对。WP\\U查询需要一个参数数组。

$args = array(
    \'cat\' => 1
);
$general_posts = new WP_Query( $args );
您可以阅读有关WP\\U查询的更多信息here.

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post