WP_Query mostrando TODAS las entradas
No puedo entender por qué mi WP_Query
siempre muestra todas mis entradas publicadas independientemente de los argumentos que coloque.
<?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>ENTRADAS ENCONTRADAS</h1>";
}
while ($about_preview_query->have_posts()) {
$about_preview_query->the_post();
print "<h1>";
the_title();
print "</h1>";
}
?>
¿Estoy haciendo algo mal aquí? Después de leer la documentación sobre WP_Query()
no puedo descubrir dónde me estoy equivocando, agradezco cualquier ayuda que pueda obtener.
Actualización
He probado este código y sigo obteniendo la misma respuesta. Todas las entradas se están devolviendo en el bucle.
$args = array(
'posts_per_page' => 1,
'meta_query' => array(
array(
'key' => 'display',
'value' => 'about',
'compare' => '=',
)
),
);
Actualización 2
Parece que si imprimo $about_preview_query->found_posts
la salida es 1. Así que sospecho que hay algo mal en cómo estoy haciendo el bucle de las entradas:
<?php if ($about_preview_query->have_posts()): ?>
<h1>Tiene <?php print $about_preview_query->found_posts ?> Entradas</h1>
<?php while ($about_preview_query->have_posts()): $about_preview_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<?php endif; ?>

Es porque estás proporcionando argumentos incorrectos. Proporciona los argumentos correctos a WP_Query()
.
También echa un vistazo a los parámetros de campos personalizados
Una cosa más, tendrás que usar código como:
$args = array(
'posts_per_page' => 5,
'meta_query' => array(
array(
'key' => 'display',
'value' => 'about',
'compare' => '=', // (Lee todos los operadores de comparación en el enlace proporcionado)
),
),
);

No existe el parámetro numberposts
. Usa posts_per_page
en su lugar. Entonces tu código quedará así...
<?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>PUBLICACIONES ENCONTRADAS</h1>";
}
while ( $about_preview_query->have_posts() ) {
$about_preview_query->the_post();
print "<h1>";
the_title();
print "</h1>";
}
?>
