it-swarm.com.de

WP_Query zeigt ALLE Beiträge an

Ich kann nicht herausfinden, warum in meinem WP_Query immer alle meine veröffentlichten Beiträge angezeigt werden, unabhängig davon, was ich in die Argumente eingegeben habe.

<?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>";

    }
?>

Mache ich hier etwas falsch? Nach dem Lesen der Dokumentation zu WP_Query() kann ich nicht herausfinden, wo ich falsch liege, und danke für jede Hilfe, die ich bekommen kann.

Update

Ich habe diesen Code ausprobiert und erhalte immer noch die gleiche Antwort. Alle Beiträge werden in der Schleife zurückgegeben.

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

Update 2

Wenn ich $about_preview_query->found_posts drucke, ist die Ausgabe anscheinend 1. Ich vermute also, dass etwas mit dem Looping der Beiträge nicht stimmt:

<?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

Es ist, weil Sie falsche Argumente geben. Geben Sie die richtigen Argumente für WP_Query() an.

Schauen Sie sich auch die benutzerdefinierten Feldparameter an

Eine weitere Sache, müssen Sie Code wie verwenden

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

Es gibt keinen Parameter für numberposts. Verwenden Sie stattdessen posts_per_page. So wird Ihr Code ...

<?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

Alles, was Sie tun müssen, ist zu ändern

'posts_per_page' => 1,

zu

'posts_per_page' => -1,
0
MoreMadness