2015-04-06 68 views
0

我做了一个名为taxonomy-country.php的自定义分类归档页面。该文件完美运行并遍历当前国家并显示其中的帖子。WP查询内taxonomy.php杀死标准循环

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

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() ?> 

回答

0

UPDATE:

刚刚发现这应该是更短的替代:

wp_reset_postdata() 

原始:

这条线把它打死了:

// Restore original Post Data 
wp_reset_query() ? 

原因:您做了n不要使用main $ wp_query,因此$ query-> the_post()不会影响$ wp_query的当前索引。重置它将导致主循环重新启动。

参考:https://codex.wordpress.org/Function_Reference/wp_reset_query

一个更安全的方法是:

global $post; 
$temp_post = $post; 

类别循环后:

类别循环之前

$post = $temp_post; 

仅有3线,它应该管用。

干杯!

+0

不,仍然没有输出。我明白你来自哪里,谢谢 – 2015-04-06 19:40:58

+0

@ user2272355更新了我的答案。我不认为我来自哪里会影响我的“免费帮助”。 – 2015-04-07 14:35:34