Loops 在taxonomy.php中的WP Query终止了标准循环

Loops 在taxonomy.php中的WP Query终止了标准循环,loops,wordpress,Loops,Wordpress,我制作了一个名为taxonomy-country.php的自定义分类法归档页面。该文件运行良好,在当前国家/地区循环,并显示其中的帖子 在同一模板上的这个循环上方,我想使用高级自定义字段显示所有帖子位置的地图。我以前使用的代码没有问题,但不是在存档文件中,但是在模板顶部使用时,地图和标记显示良好,但标准存档循环不再显示 wpquery有什么问题,它会在它之后终止循环?或者我不能在归档页面上运行高于正常循环的查询还有其他原因吗 <?php // WP_Query

我制作了一个名为taxonomy-country.php的自定义分类法归档页面。该文件运行良好,在当前国家/地区循环,并显示其中的帖子

在同一模板上的这个循环上方,我想使用高级自定义字段显示所有帖子位置的地图。我以前使用的代码没有问题,但不是在存档文件中,但是在模板顶部使用时,地图和标记显示良好,但标准存档循环不再显示

wpquery有什么问题,它会在它之后终止循环?或者我不能在归档页面上运行高于正常循环的查询还有其他原因吗

<?php               
// WP_Query arguments
$args = array (
'post_type'              => 'home',
'order'                  => 'ASC',
'orderby'                => 'title',
'posts_per_page'         => '-1',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) { ?>
    <div class="acf-map">
    <?php while ( $query->have_posts() ) {
    $query->the_post(); ?>
    <?php 
    $location = get_field('location');
    if( !empty($location) ):
    ?>
    <div class="acf-map">
        <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>">
            <h2 class="name"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <strong class="number"><?php echo do_shortcode('[mrp_rating_result rating_form_id="2"]'); ?></strong>
        </div>
    </div>
<?php endif; ?>         
<?php   }
} else {
// no posts found
}
// Restore original Post Data
wp_reset_query() ?>
更新:

刚刚发现这应该是一个更短的选择:

wp_reset_postdata()
原产地:

这条线扼杀了它:

// Restore original Post Data
wp_reset_query() ?
原因:您没有使用main$wp\u query,因此$query->the\u post没有干扰$wp\u query的当前索引。重置它将导致主循环重新启动

参考:

更安全的方法是:

在类别循环之前:

global $post;
$temp_post = $post;
$post = $temp_post;
在类别循环之后:

global $post;
$temp_post = $post;
$post = $temp_post;
只要3行就行了


干杯

根据上述答案,您必须将$post in存储在临时变量中,并在wp\u reset\u查询之前将其还原

示例函数代码如下所示

 function cd_meta_box_cb_hotel( $post )
    {
        global $post;
    $temp_post = $post;

        $selected=get_post_meta($post->ID, 'hotel_location_id',true);
        $mquery = new WP_Query(array(
        'post_type' => 'custom posttype',
        'post_status' => 'publish',
        'posts_per_page' => -1,

    ));


    while ($mquery->have_posts()) {
        $mquery->the_post();



      // doing what you need


    }

    **$post = $temp_post;
    wp_reset_query();**


    }

没有,还是没有输出。我知道你是从哪里来的,thanks@user2272355更新了我的答案。我不认为我来自哪里会影响我的免费帮助。