2014-10-01 103 views
0

我在「archive.php」文件下面的代碼(從我的當前活動主題):不能正常工作的自定義WordPress的查詢

list($f_categ_name) = explode('/', get_category_parents($cat)); 
      if ($f_categ_name == "X_CATEG") { 
       $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
       $args = array(
        'post_type' => 'post', 
        'category_name' => single_cat_title('', false), 
        'meta_key' => 'x_categ_type', 
        'orderby' => 'meta_value', 
        'order' => 'ASC', 
        'paged' => $paged, 
       ); 
       // get results 
       $the_query = new WP_Query($args);     // The Loop 
       ?> 
       <?php if($the_query->have_posts()): ?> 

我有2類:A(15個)和B(有7個職位),他們有相同的父類別(比如說X_CATEG)。所以基本上我運行相同的代碼,但$the_query->have_posts()返回爲A類和 B類。 爲什麼?

使用$ GLOBALS [ 'wp_query'] - >請求我能夠調試所執行的查詢和兩個查詢(A類和B)返回的所有帖子的ID。

回答

1

WP_Query的參數中,category_name將是類別slug不是類別標題。

single_cat_title如果查詢類別或標籤檔案,函數將返回頁面標題。 see reference

因此,您應該在WP_Query參數中使用類別slug而不是類別title

希望這會有所幫助。

+0

謝謝。這是問題(稍作調整)。 – Larry 2014-10-16 18:36:50