2012-04-07 33 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>'; 

     } 
    } 
} 

也許這可以幫助你找到你的錯誤。