the_post 从中放置下一个post对象$query->posts 在全球范围内$post 和电话setup_postdata, 假设$post 是一个post对象,因为它试图访问该对象的成员变量,这就是错误的来源。
在这种情况下$posts 只是一个ID数组,而不是post对象。如果要迭代结果,可以执行foreach 在…上$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;