WordPress V2 API按多分类AND逻辑筛选文章的实现求助
WordPress V2 API 按分类AND逻辑筛选文章解决方案
首先纠正你请求中的参数拼写错误:categorie应该改为categories,这是WP REST API的标准参数名。
默认情况下,categories参数使用OR逻辑匹配分类,要实现同时属于多个分类的AND逻辑筛选,你需要通过自定义代码扩展API功能,具体步骤如下:
在主题的
functions.php文件或自定义插件中添加以下代码:add_filter('rest_post_query', function($args, $request) { // 获取自定义的分类AND参数 $categories_and = $request->get_param('categories_and'); if (!empty($categories_and)) { // 拆分并转换为整数ID数组 $category_ids = array_map('intval', explode(',', $categories_and)); // 添加tax_query实现AND逻辑 $args['tax_query'][] = array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => $category_ids, 'operator' => 'AND', ); // 移除默认的categories参数逻辑,避免冲突 unset($args['category__in']); } return $args; }, 10, 2);保存代码后,使用新的
categories_and参数发起请求,替代原来的categories参数:/v2/posts?per_page=5&page=1&categories_and=1973,94&categories_exclude=1734,1032&_embed
这段代码通过rest_post_query过滤器,在API查询文章时添加了支持AND逻辑的分类筛选条件,同时避免了和默认categories参数的逻辑冲突,不会影响其他使用默认OR逻辑的请求。
内容的提问来源于stack exchange,提问作者gensheimer
相关产品推荐
相关产品推荐

