你实际上需要全球化$post 在您的代码中setup_postdata() 做正确的事。这有点牵强附会setup_postdata() 仅设置相关全局($id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages) 但并没有遍布全球$post 对象,从中the_title() 拉动标题。
解决方案:global $post; 在循环之前。
就你而言,wp_reset_postdata() 实际上没有必要,因为您从未真正使用主查询中的数据,只使用子查询中的数据。