在自定义WP_QUERY上使用URL变量

时间:2015-10-27 作者:Andy Cheeseman

背景

我有一个带有自定义模板“listen”的页面,上面运行着一个自定义wp\\u查询。。。

$custom_query_args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'post_format\',
            \'field\'    => \'slug\',
            \'terms\'    => array( \'post-format-audio\' ),
        ),
    ),
);
问题当我尝试使用url变量筛选此页面上的帖子时(example.com/listen/?category\\u name=thebigshow),即使我拼写不正确,也不会有任何变化。

如何使用此方法按“category\\u name”(显示名称)过滤“listen”页面?

谢谢,安迪。

1 个回复
最合适的回答,由SO网友:thomascharbit 整理而成

WordPress无法自动处理此逻辑,因此您必须手动处理。

您需要做的是:

使用get\\u query\\u var(“category\\u name”)读取url参数;

将其注入自定义WP\\U查询:

$custom_query_args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'post_format\',
             \'field\'    => \'slug\',
             \'terms\'    => array( \'post-format-audio\' ),
         ),
        array(
            \'taxonomy\' => \'category\',
             \'field\'    => \'slug\',
             \'terms\'    => get_query_var( \'category_name\' ),
         )
     )
);
请注意,如果决定传递任意变量而不是category\\u名称,则需要在使用之前声明它。

看见https://codex.wordpress.org/Function_Reference/get_query_var

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post