如果您正在使用setup_postdata( $post )
您需要使用全局$post
由于某种原因,没有这个特定的变量,它就不能工作。手动设置后$post
对于新值,您正在更改$post
全局,因此需要将其重置回主查询的当前帖子。
除此之外,千万不要将Wordpress设置的任何全局变量用作自定义变量,因为这可能会导致代码出现不可调试的问题和意外的结果。打破一个全局变量,然后尝试调试这样的问题,会让您大吃一惊;-)
在您的特定用例中,您需要添加wp_reset_postdata()
自定义查询完成后立即
$post = get_post(17);
$page_template = get_post_meta(17);
setup_postdata( $post );
include($page_template[\'_wp_page_template\'][0]);
wp_reset_postdata();