2017-07-24 78 views
1

我在寫一個wp主題,因爲我只是想圍繞WP_Query做一個包裝函數並重用它。爲了簡化生活。WP_Query功能不正確

我的包裝功能是:

//for making wp_query easily 
    function myQuery($options,$callback){ 
     $the_query = new WP_Query($options); 
     if ($the_query->have_posts()) { 
      while ($the_query->have_posts()) { 
       $the_query->the_post(); 
       $callback(); 
      }    
     } 
     wp_reset_postdata(); 
     wp_reset_query(); 
    } 


//get a single post by the id. 
function get_post_by_id($id,$callback){  
    $options = array('post_in' => $id,); 
    myQuery($options,$callback); 
} 

但是當我使用get_post_by_id()功能,我得到意想不到的結果,我注意到,回調被稱爲多的時間。

我該如何解決這個問題?

回答

0

您應該使用的正確選項是post__in而不是post_in。由於您沒有發送正確的選項,因此wp_query會迴應所有帖子,因此會回調多個回調呼叫。

+0

那麼爲什麼沒有包裝功能它的工作????????? –

+0

那麼,你試過'post_in'嗎?它有用嗎?如果你沒有使用包裝函數,你在哪裏/如何調用這些代碼? –