簡體   English   中英

ACF WP_Query按分類字段過濾

[英]ACF WP_Query Filter by Taxonomy Field

我正在嘗試過濾CPT以按分類顯示字段,我目前正在使用以下代碼:-

$args = array(
    'posts_per_page'=> -1,
    'post_type'     => 'episode',
    'order'             => 'DESC',
    //'meta_key'        =>  $filter_key,
    //'meta_value'  =>  $filter,                                
    'tax_query' => array(
        array(
            'taxonomy' => 'name',
            'field' => 'make',
            'terms' => array('Jaguar')
        )
    ),  
);

但是,這不會返回任何結果。

這就是我要過濾的內容:-

array(3) { [0]=> object(WP_Term)#7336 (10) { ["term_id"]=> int(25) ["name"]=> string(6) "Jaguar" ["slug"]=> string(6) "jaguar" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(25) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } [1]=> object(WP_Term)#7493 (10) { ["term_id"]=> int(24) ["name"]=> string(13) "Mercedes K100" ["slug"]=> string(13) "mercedes-k100" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(24) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } [2]=> object(WP_Term)#7492 (10) { ["term_id"]=> int(26) ["name"]=> string(10) "Porche 911" ["slug"]=> string(10) "porche-911" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(26) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } } array(3) { [0]=> object(WP_Term)#7503 (10) { ["term_id"]=> int(25) ["name"]=> string(6) "Jaguar" ["slug"]=> string(6) "jaguar" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(25) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } [1]=> object(WP_Term)#7490 (10) { ["term_id"]=> int(24) ["name"]=> string(13) "Mercedes K100" ["slug"]=> string(13) "mercedes-k100" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(24) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } [2]=> object(WP_Term)#7489 (10) { ["term_id"]=> int(26) ["name"]=> string(10) "Porche 911" ["slug"]=> string(10) "porche-911" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(26) ["taxonomy"]=> string(8) "post_tag" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(0) ["filter"]=> string(3) "raw" } }

因此,我的分類法字段的名稱稱為“ make”,出於測試目的,我只想顯示所有具有“ Jaguar”分類法的帖子

請指教。

array(
            'taxonomy' => 'name',
            'field' => 'make',
            'terms' => array('Jaguar')
        )

是錯的。 應該

array(
            'taxonomy' => 'post_tag',
            'field' => 'name',
            'terms' => array('Jaguar')
        )

查看有關WP Query分類標准參數的文檔,以獲取有關其工作原理的信息

編輯:查看您發布的var dump,看來Jaguar是發布標記,而不是稱為“ make”的自定義分類法

我設法將其最終排序,@ mrben522是​​正確的,參數應該如下:

$args = array(
    'posts_per_page'=> -1,
    'post_type'     => 'episode',
    'tax_query' => array(
        array(
            'taxonomy' => 'post_tag',
            'terms' => array('Jaguar'),
            'field' => 'name',              
        )
    ),
    'order'             => 'DESC',                                    
);

但是,僅此一項並不能解決問題。 我還要做的是更改ACF中“分類”字段的選項。 “保存條款”選項設置為“否”,但是將此選項更改為“是”可以使我滿意。

在此處輸入圖片說明

如果您在分類法字段中使用“保存條款”設置,則所選條款將被保存為帖子和該條款之間的連接-就像WP核心一樣。 這意味着所有代碼都可以使用或不使用ACF。

發布此解決方案,因為它可能對其他人有幫助,謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM