我正在标题内执行一个查询。php,它显然正在重置$post对象,以便所有页面都获得此循环中最后一个元素的$post->ID。
$mypostsheader = get_posts(array(\'cat\' => "$cat,-$catHidden",\'numberposts\' => $cb2_current_count));
$current_page = get_post( $current_page );?>
<div class="menu top">
<ul><?php foreach($mypostsheader as $idx=>$post){
if ( $post->ID == $current_page->ID )//do something; }
我尝试在这个函数的末尾和标题的末尾添加一个rewind\\U posts()。php,但我的echo$post->ID在页面内。php仍然返回查询中最后一个元素的id。
有什么想法吗?
最合适的回答,由SO网友:Scott B 整理而成
我发现一种解决方案是在函数调用结束之前调用wp\\u reset\\u query()。我试图使用rewind\\u posts(),但它不起作用。wp\\u reset\\u query()成功了。
这样做之后,由于@goldenapples的出色观察,我已经用$current\\u页面变量(duh!)设置了指向当前$post对象的指针,我发现我可以转储wp\\u reset\\u query()调用,而只需在其位置添加此行。。。
$post = $current_page;
根本原因是我在for循环中重置了$post对象(作为$idx=>$post),因此必须重置查询,以便$post的值能够真实反映页眉下方函数调用中页面的当前$post对象。php