我正在用 Wordpress 设计一个网站。该站点是所有页面都打印在主页上并且菜单滚动到锚点的视差站点之一。
话虽如此,我正在使用 wp_query 来拉出主菜单中的所有页面。此外,我在内容中使用的简码也需要使用 wp_query。
我遇到的问题是短代码(嵌入的 wp_query)搞砸了 postdata。我知道在使用 wp_query 时,您通常希望使用 wp_reset_postdata 但在这种特殊情况下它不起作用,因为此函数调用将恢复主页的 postdata 而不是当前正在运行的 wp_query (对不起,如果我不清楚) .
有没有办法拍摄 postdata 的快照,然后在我的简码之后恢复?我正在寻找类似的东西:
function my_shortcode() {
save_postdata(); //saves the current postdata
$query = new WP_Query();
while( $query->have_posts() ) {
$query->the_post();
echo get_the_title();
}
my_wp_reset_postdata(); //restores the postdata to where it was before the loop
}