2012-10-16 57 views
0

下面是我的困境,我的主題選項將自定義分類變量作爲ID號傳遞,而不是段塞名稱。所以不是傳遞「新聞」而是傳遞「4」。如何將WP_Query用於使用分類標識的自定義帖子類型的分類標準?

我有這樣的硬編碼工作:

$wp_query = new WP_Query(array('slidecat' => 'extra', 'showposts'=>$slides)); 

但這個代碼只能與塞。因此,如果我用主題選項中的變量「我的選擇」字段中的變量$ slider_category替換「額外」,則代碼不起作用。

回答

1

如果你有分類ID,那麼它更容易只是直接查詢數據庫才能到毛坯:

function get_term_by_taxonomy_id($term_taxonomy_id) { 
    global $wpdb; 
    $taxonomy = $wpdb->get_row($wpdb->prepare( 
     "SELECT * FROM $wpdb->term_taxonomy wta 
      INNER JOIN $wpdb->terms wt ON (wta.term_id = wt.term_id) 
      WHERE wta.term_taxonomy_id = %d", $term_taxonomy_id 
    )); 

    return $taxonomy; 
} 

$cat = get_term_by_taxonomy_id($slider_category); 
// at this point you should check if $cat is null (in case of an error) 
$wp_query = new WP_Query(array('slidecat' => $cat->slug, 'showposts'=>$slides)); 

當然的塞可有可能被應用到不同的分類,例如categorypost_tag,並命名爲"hello"。所以這取決於如何實現slidecat以及支持哪些分類法。

+0

它不是一個類別,但它是自定義帖子類型的分類。這可能本質上是「get_category(4);」它如何知道我的意思是自定義帖子類型的分類,而不是一個不同的或者帖子類別? –

+0

@BRAINBUZZmedia:謝謝你的評論!你是對的,我的解決方案是不正確的。我現在改變了我的答案。它使用taxonomy-ID直接從數據庫中選擇分類,並返回一個類似go_get_category的對象 - 包括'slug'。 – vstm

+0

它的工作原理!謝謝!一個問題。查詢數據庫不好嗎?這就像是如何調用wp-load的建議嗎? –

相關問題