WP查询-使用正则表达式过滤术语

时间:2016-07-20 作者:Pavel Koch

是否有可能使用regexp按术语筛选帖子?我的代码似乎不太管用。

$tax[] = [
    \'taxonomy\'  => \'tax_name\',
    \'field\'     => \'name\',
    \'terms\'     => $name,
    \'operator\'  => \'REGEXP\',
];
The$tax 然后将变量正确添加到WP_Query args。

1 个回复
SO网友:Andy Macaulay-Brook

这是未经测试的,但试一试。首先获取分类法中术语名称的列表。然后根据regex过滤返回的名称数组。然后将过滤后的名称数组用于WP查询。

// assumes these assignments:
//
// $taxonomy - the taxonomy name you are querying against
// $regex - the regex to match the term names against

// First get all the terms that have posts:

$terms = get_terms( array(
    \'taxonomy\' => $taxonomy,
    \'fields\' => \'names\', // return an array of term names
) );

$filtered_terms = preg_grep($regex, $terms);

// when you use this, expand $args with other relevant arguments for your query, such as post type:

$args = array(
    \'tax_query\' => array(
        array(
            \'taxonomy\' => $taxonomy,
            \'field\'    => \'name\',
            \'terms\'    => $filtered_terms,
        ),
    ),
)

$the_query = new WP_Query( $args );

// Then run your loop

相关推荐

404 - Taxonomy Archive Page

我正在创建一个Wordpress自定义帖子类型,包括一个分类法,在安装之后,所有的永久链接都被刷新了,但是分类法归档页面不断给我404。CPT归档页面工作得非常好。要创建的代码:add_action( \'init\', \'register_cpt_post_type\' ); function register_cpt_post_type() { register_post_type( \'offers\', array(