Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ACF WP_查询过滤器(按分类法字段)_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php ACF WP_查询过滤器(按分类法字段)

Php ACF WP_查询过滤器(按分类法字段),php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我正在尝试筛选CPT以按分类法显示字段,目前使用的代码如下:- $args = array( 'posts_per_page'=> -1, 'post_type' => 'episode', 'order' => 'DESC', //'meta_key' => $filter_key, //'meta_value' => $filter,

我正在尝试筛选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')
        )
请查看上的文档,了解其工作原理

编辑:查看您发布的var转储,Jaguar似乎是一个post标签,而不是一个名为“make”的自定义分类法

这是错误的。应该是

array(
            'taxonomy' => 'post_tag',
            'field' => 'name',
            'terms' => array('Jaguar')
        )
请查看上的文档,了解其工作原理


编辑:查看您发布的var转储,Jaguar似乎是一个post标签,而不是一个名为“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 core一样。这意味着所有的代码都可以使用或不使用ACF


发布此解决方案,因为它可能对其他人有所帮助,谢谢

我最终成功地对其进行了排序,@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 core一样。这意味着所有的代码都可以使用或不使用ACF


发布此解决方案,因为它可能对其他人有所帮助,谢谢

谢谢@mrben522-我尝试了上面的代码,但仍然没有返回任何信息,有什么想法吗?var_转储是
get_字段('make')-这是ACF分类字段(使用Taxonomy;Tag)OHHHH现在我知道了。你不能那样使用ACF。如果您试图在查询中按ACF字段过滤内容,则需要使用元查询,而不是税务查询。我不确定最终目标是什么谢谢@mrben522-我尝试了上述代码,但仍然没有返回任何内容,有什么想法吗?变量转储是
get_字段('make')-这是ACF分类字段(使用Taxonomy;Tag)OHHHH现在我知道了。你不能那样使用ACF。如果您试图在查询中通过ACF字段进行筛选,则需要使用元查询,而不是税务查询。我不太确定最终目标是什么