WP_Query afișează TOATE postările
Nu-mi dau seama de ce WP_Query
afișează întotdeauna toate postările mele publicate, indiferent ce parametri pun în argumente.
<?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>POSTĂRI GĂSITE</h1>";
}
while ($about_preview_query->have_posts()) {
$about_preview_query->the_post();
print "<h1>";
the_title();
print "</h1>";
}
?>
Fac ceva greșit aici? După ce am citit documentația despre WP_Query()
nu-mi dau seama unde greșesc, apreciez orice ajutor pe care îl pot primi.
Actualizare
Am încercat acest cod și încă primesc același răspuns. Toate postările sunt returnate în buclă.
$args = array(
'posts_per_page' => 1,
'meta_query' => array(
array(
'key' => 'display',
'value' => 'about',
'compare' => '=',
)
),
);
Actualizare 2
Se pare că dacă afișez $about_preview_query->found_posts
rezultatul este 1. Deci bănuiesc că este ceva în neregulă cu modul în care fac bucla postărilor:
<?php if ($about_preview_query->have_posts()): ?>
<h1>Are <?php print $about_preview_query->found_posts ?> Postări</h1>
<?php while ($about_preview_query->have_posts()): $about_preview_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<?php endif; ?>
Este pentru că furnizați argumente incorecte. Folosiți argumentele corecte pentru WP_Query()
.
De asemenea, consultați parametrii câmpurilor personalizate
Încă ceva, va trebui să folosiți cod precum:
$args = array(
'posts_per_page' => 5,
'meta_query' => array(
array(
'key' => 'display',
'value' => 'about',
'compare' => '=', // (Citiți toți operatorii de comparație la linkul furnizat)
),
),
);

Nu există niciun parametru pentru numberposts
. Folosește posts_per_page
în schimb. Deci codul tău va deveni...
<?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>POSTĂRI GĂSITE</h1>";
}
while ( $about_preview_query->have_posts() ) {
$about_preview_query->the_post();
print "<h1>";
the_title();
print "</h1>";
}
?>
