Pour accélérer ma requête, j'utilise les arguments suivants:
$args = array(
'post_type' => 'product',
'fields' => 'ids',
);
$query = new WP_Query($args);
Bien que cela retourne un tableau d'identifiants comme prévu, je continue à recevoir plusieurs notifications Trying to get property of non-object in /wp-includes/query.php
. Cela se produit même lorsque je n'ai rien dans ma while
autre que the_post()
:
if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
endwhile;
endif;
Est-ce que the_post()
en est la cause? Une idée de la raison pour laquelle je reçois ces avis?
the_post
place le prochain objet post de $query->posts
dans le $post
global et appelle setup_postdata
, qui suppose que $post
est un objet post car il tente d'accéder aux membres vars de cet objet, d'où proviennent les erreurs.
Dans ce cas, $posts
est simplement un tableau d’ID au lieu d’objets post. Si vous souhaitez parcourir les résultats, vous pouvez créer une foreach
sur $posts
:
$args = array(
'post_type' => 'product',
'fields' => 'ids',
);
$query = new WP_Query($args);
if ($query->have_posts()):
foreach( $query->posts as $id ):
echo 'ID: ' . $id;
endforeach;
endif;