WP_Query displaying ALL posts

时间:2014-10-02 作者:Mark Winterbottom

我不明白为什么我的WP_Query 始终显示所有已发布的帖子,无论我在参数中输入了什么。

<?php 

    $args = array(\'numberposts\' => 1,
                    \'meta_key\' => \'display\',
                    \'meta_value\' => \'about\'
    );

    $about_preview_query = new WP_Query($args);

    if ($about_preview_query->have_posts()) {
        print "<h1>FOUND POSTS</h1>";
    }

    while ($about_preview_query->have_posts()) {
        $about_preview_query->the_post();
        print "<h1>";
        the_title();

        print "</h1>";

    }
?>
我是不是做错了什么?读取文件后WP_Query() 我想不出哪里出了问题,非常感谢您的帮助。

Update

我尝试过这个代码,但仍然得到相同的响应。所有帖子都将在循环中返回。

    $args = array(
        \'posts_per_page\' => 1,
        \'meta_query\' => array(
            array(
                \'key\' => \'display\',
                \'value\' => \'about\',
                \'compare\' => \'=\',
             )
        ),
    );
更新2

如果我打印$about_preview_query->found_posts 输出为1。因此,我怀疑我循环帖子的方式有问题:

<?php if ($about_preview_query->have_posts()): ?>

    <h1>Has <?php print $about_preview_query->found_posts ?> Posts</h1>

    <?php while ($about_preview_query->have_posts()): $about_preview_query->the_post(); ?>
        <h2><?php the_title(); ?></h2>
    <?php endwhile; ?>

<?php endif; ?>

3 个回复
SO网友:Ali

这是因为你给出了错误的论点。提供正确的参数WP_Query().

还可以查看custom field parameters

还有一件事,您必须使用如下代码

$args = array(
    \'posts_per_page\' => 5,
    \'meta_query\' => array(
        array(
            \'key\'     => \'display\',
            \'value\'   => \'about\',
            \'compare\' => \'=\', // (Read all comparison operators at provided link)
        ),
    ),
);

SO网友:Robert hue

没有参数numberposts. 使用posts_per_page 相反因此,您的代码将成为。。。

<?php 

    $args = array(
        \'posts_per_page\' => 1,
        \'meta_key\' => \'display\',
        \'meta_value\' => \'about\'
    );

    $about_preview_query = new WP_Query($args);

    if ( $about_preview_query->have_posts() ) {
        print "<h1>FOUND POSTS</h1>";
    }

    while ( $about_preview_query->have_posts() ) {
        $about_preview_query->the_post();
        print "<h1>";
        the_title();
        print "</h1>";
    }
?>

SO网友:MoreMadness

你所需要做的就是改变

\'posts_per_page\' => 1,

\'posts_per_page\' => -1,

结束

相关推荐

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

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