2017-08-26 44 views
0

我已經創建了一個頁面,其中列出了取決於類別的不同課程。正常查詢工作:依賴於類別的不同WP查詢

$args=array(
      'post_type' => 'post', 
      'post_status' => 'publish', 
      'category_name' => 'raid' 
     ); 

     //$courses_query = null; 
    $the_query = new WP_Query($args); 

,但上面的代碼意味着每次添加一個新的類別的時間,這意味着複製代碼,並改變頁面的一部分創建另一個模板。該頁面將是domainname.com/courses/sdi-courses,並且每次更改每個類別的URL。

'category_name' => 'sdi'// this will change to raid, padi etc. 

這是我正在使用的代碼。

<?php 

    // The Query 
     if (is_category('sdi-courses')) { // page slug 
      $args=array(
       'post_type' => 'post', 
      'post_status' => 'publish', 
      'category_name' => 'sdi' // slug of category 
     ); 
     } else (is_category('raid-courses')) { 
      $args=array(
       'post_type' => 'post', 
      'post_status' => 'publish', 
      'category_name' => 'raid' 
     ); 
     } 

     $the_query = new WP_Query($args); 
?> 

他只會有一些這樣的,但必須有更好的方式來做到這一點。我試着用上面的代碼,但它不起作用。我想這是與if語句返回的內容有關,一旦它獲得了$ args = array的正確信息。

任何幫助都會很棒,我不會做太多的WP或PHP,所以我正在爲此付出努力。

+1

你能說在哪個文件是你查詢的循環?像single.php或front-page.php。我需要文件名來知道類別是如何決定的。 –

+0

是的,請告訴我們這個代碼來自哪個文件 - 它確實有所作爲! – FluffyKitten

回答

0

試試這個代碼

$cat = get_the_category(); 
$args=array(
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'category_name' => $cat, 
); 

//$courses_query = null; 
$the_query = new WP_Query($args); 

目前的類別名稱將在$貓變量來填充。

希望能夠解決這個問題。

+0

嗨,我恐怕沒有工作,它顯示了所有的post's.Please看附件的截圖,只是爲了確保我已經做了正確的事情類別命名。 https://www.dropbox.com/s/k4nbczd58leyyjf/Screenshot%202017-08-26%2011.51.46.png?dl=0 – ChrisD

+0

你需要什麼輸出? –

+0

我想要一個條件語句,因此它在頁面是'sdi-courses'時使用此代碼 'post_type'=>'帖子', 'post_status'=>'發佈', 'category_name'=>'sdi' 然後當頁面是raid-courses-domain/courses/raid-courses時,它使用 'post_type'=>'post', 'post_status'=>'publish', 'category_name'=>'raid' 我不介意在代碼中添加大量的條件語句,因爲只顯示大約5個不同的類別。只是不知道該怎麼做。 – ChrisD

0

您可以使用當前帖子ID獲取特定帖子類別。

請檢查下面的代碼:

global $post; 
$postcat = get_the_category($post->ID); // You will get category as array 

echo '<pre>';print_r($postcat) // print array to check what will you getting. 
$postcat[0]->term_id // you will get ID of the category. 
$postcat[0]->name // you will get name of the category. 

希望,這會爲你很有幫助。謝謝。

0

如果你是在一些網頁使用這個,那麼你總是可以做一個函數,並傳遞一個參數作爲類別名稱和使用,在不同的頁面

function abc($cat) { 
$args=array(
     'post_type' => 'post', 
     'post_status' => 'publish', 
     'category_name' => $cat 
    ); 

    //$courses_query = null; 
$the_query = new WP_Query($args); 
}