web-dev-qa-db-ja.com

すべての投稿を表示しているWP_Query

引数に何を入れても、私の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()のドキュメントを読んだ後、どこで問題が発生しているのかわかりません。助けになれば幸いです。

アップデート

私はこのコードを試しましたが、私はまだ同じ応答を得ています。すべての投稿はループで返されています。

    $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; ?>
1

あなたが間違った議論をしているからです。 WP_Query() に正しい引数を与えてください。

カスタムフィールドパラメータを見てください

もう一つ、あなたはのようなコードを使用する必要があります

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

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>";
    }
?>
1
Robert hue

あなたがする必要があるのは変更だけです

'posts_per_page' => 1,

'posts_per_page' => -1,
0
MoreMadness