我正在开发一个插件。在此插件中,我创建了一个自定义帖子类型' toto'。
在管理页面中,我使用以下帖子ID' 82'编辑自定义帖子元素。 在此页面中,我启动一个查询以检索具有另一个post_type的元素:
$featured_args = array(
'post_type' => 'other_type',
'post_status' => 'publish'
);
// The Featured Posts query.
$featured = new WP_Query( $featured_args );
// Proceed only if published posts with thumbnails exist
if ( $featured->have_posts() ) {
while ( $featured->have_posts() ) {
$featured->the_post();
if ( has_post_thumbnail( $featured->post->ID ) ) {
/// do stuff here
}
}
// Reset the post data
wp_reset_postdata();
}
这样做全球$ post已更改。它不再是id为82的帖子,而是来自查询的最新post元素。
我认为wp_reset_postdata()函数将允许我检索当前的$ post。我也试过wp_reset_query()而没有改变。 我错过了什么吗?
任何帮助都将不胜感激。
答案 0 :(得分:4)
wp_reset_postdata()
重置主循环。如果您想直接访问$post
,请尝试
global $post;
$backup_post = $post;
//do another loop
wp_reset_postdata();
$post = $backup_post;