2012-04-07 38 views
1

我试图做这个循环中,但它会无限wp_query在无限循环

我只需要显示在<li>标签了一定的成效。我正在编辑loop.php来执行此操作,而函数if(function_exists('wp_custom_fields_search')) wp_custom_fields_search();只是返回我创建的一个插件的一种形式。

你能帮我吗?

<?php 
     $queryA = new WP_Query($args1); 
     $queryB = new WP_Query($args2); 

     $args1 = array (
     'orderby' => 'title', 
     'order' => 'ASC', 
     'category_name' => 'lojas', 
     'posts_per_page' => '-1', 
     ); 

     $args2 = array (
     'orderby' => 'title', 
     'order' => 'ASC', 
     'category_name' => 'gastronomia', 
     'posts_per_page' => '-1', 
     ); 


     if ($queryA->have_posts()) { 
      if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); 
      while($queryA->have_posts()) : $queryA->the_post(); 
       echo '<li>'; 
       echo '<span class="nome">'; 
       the_title(); 
       echo '</span>'; 
       echo '<span class="end">'; 
       echo get('endereco'); 
       echo '</span>'; 
       echo '<span class="tel">'; 
       echo get('telefone'); 
       echo '</span>'; 
       echo '</li>'; 
      endwhile; 
     } 


     if ($queryB->have_posts()) { 
      if(function_exists('wp_custom_fields_search')) wp_custom_fields_search('preset-1'); 
      while($queryB->have_posts()) : $queryB->the_post(); 
       echo '<li>'; 
       echo '<span class="nome">'; 
       the_title(); 
       echo '</span>'; 
       echo '<span class="end">'; 
       echo get('endereco'); 
       echo '</span>'; 
       echo '<span class="tel">'; 
       echo get('telefone'); 
       echo '</span>'; 
       echo '</li>'; 
      endwhile; 
     }  


    ?> 

回答

0

我必须从你的代码承认我没有看到第一手什么可能导致无限循环,但是你可以大大减少你的代码这可能会帮助你找到你的错误:

$defaultArgs = array (
    'orderby' => 'title', 
    'order' => 'ASC', 
    'posts_per_page' => '-1', 
); 
$queries = array(
    array(array('category_name' => 'lojas'), NULL), 
    array(array('category_name' => 'gastronomia'), 'preset-1'), 
);  
$customFiledsSearch = function_exists('wp_custom_fields_search'); 
foreach ($queries as $query) 
{ 
    list($args, $param) = $query; 
    $wpQuery = new WP_Query($args + $defaultArgs); 
    if ($wpQuery->have_posts()) 
    { 
     if ($customFiledsSearch) 
     { 
      wp_custom_fields_search($param); 
     } 
     while ($wpQuery->have_posts()) : $wpQuery->the_post()) 
     { 
      echo '<li>', 
        '<span class="nome">', 
        the_title(); 
        '</span>', 
        '<span class="end">', 
        get('endereco'), 
        '</span>', 
        '<span class="tel">', 
        get('telefone'), 
        '</span>', 
       '</li>'; 

     } 
    } 
} 

也许这可以帮助你找到你的错误。