当前位置: 首页 > 知识库问答 >
问题:

WordPress按几个分类法查询帖子

石喜
2023-03-14

我在这个问题上搜索了很多,但找不到任何有说服力的东西。也许有人能帮我!

我有自定义帖子类型的地方和两个自定义分类法的地方区域和地方类别。我正在根据这两个分类法构建一个下拉过滤器。如果筛选器是空的,并且选择了两种分类法,那么一切都很好。但是我不知道如何使它工作,如果一个分类法有价值,另一个是空的。

我的问题是:

if(($category == null) && ($area == null)) {

    //Usual query without taxonomy

  } else {
    $args = array(
      'post_type'      => 'place',
      'tax_query' => array(
            array(
                'taxonomy' => 'placecat',
                'field' => 'slug',
                'terms' => $category
            ),
            array(
                'taxonomy' => 'placearea',
                'field' => 'slug',
                'terms' => $area
            )
        )
    );
  }
  $the_query = new WP_Query( $args );

我认为空值将意味着所有分类术语,但它似乎在寻找一个不存在的术语,并返回空结果。

如果术语值为空,如何从查询中排除分类法?

共有1个答案

谷梁存
2023-03-14

如果您单独检查它们,您也可以单独添加它们。

$args['post_type'] = 'place';

if ( $category != null ) {  
    $args['tax_query'][] =  array(
        'taxonomy' => 'placecat',
        'field' => 'slug',
        'terms' => $category
     );
}

if ( $area != null ) {  
    $args['tax_query'][] = array(
        'taxonomy' => 'placearea',
        'field' => 'slug',
        'terms' => $area
     );
}

在这种情况下,我们只将它们添加到tax_query参数中,如果它们不是null。

 类似资料:
  • 我目前在wordpress网站上有一个基于复选框的搜索和筛选。 基本上,它使用这个wp_查询工作 我想远离使用类别(因为这让使用博客很痛苦) 所以我现在已经使用自定义分类法设置了所有内容,并注意到没有“taxonomy__and”。 有没有人知道一种使用WP_查询的方法来搜索使用分类法的帖子,就像category_u和and一样? 例如。我传递了多个分类法id,它只返回所有链接的帖子。

  • 我正在开发一个基于WordPress自定义帖子类型(winkels)的自定义商店定位器。每个商店都可以在分类法“winkelketen”(连锁店)中指定一个分类术语。总共有3847个商店,使用WP_Query查询所有商店都很好。当我按照特定的分类术语创建WP_查询时,并不是该分类术语中的所有帖子都显示出来。 例如:分类术语“deen”统计WordPress中的148个存储(帖子)。在我的WP_查询

  • 我正在创建一个旅游主题,我在其中创建了一些自定义帖子,如城市、地点、目的地和酒店,为了向这些自定义帖子添加更多信息,我创建了几个元框,其中包含一些元键,如地址、租金、酒店房间以及如何到达城市、目的地、,现在我在索引页上有一个搜索表单,可以根据酒店自定义帖子的自定义元键搜索酒店,我必须在函数中创建自己的自定义搜索函数。通过查看创建自定义搜索表单的wordpress教程,我只能有一个GET变量“?s=

  • 我有一个自定义的文章类型(媒体文章),它使用一些自定义字段,有一个自定义分类法(媒体文章类别)和该分类法中的14个术语。我可以使用CPT归档模板输出所有自定义帖子。 我在侧边栏中还有一个菜单,它列出了用于过滤自定义帖子的术语(我使用了一个自定义WP菜单小部件来创建列表)。 我用一个查询设置了一个自定义分类模板。根据args中放置的分类术语,我能够成功地组合或单独显示帖子。因此,如果我不需要使用过滤

  • 使用下面的代码,我列出了自定义帖子类型“人物”下的所有帖子 下面是我的页码, 我还创建了一个插件,使用上面的代码在边栏中显示标题列表。因此,每当我访问mysite.com/people这两个网站时(即带有分页的自定义帖子列表 若我转到第二页,侧边栏显示为空。 有人知道我哪里出错了吗?

  • 对于每个成员(作者),我有一个字段来存储成员性别。(Homme/Somme)。 数据存储在我的数据库中,wp_usermeta。 元键是“性别”,元值是“男人”或“女人”。 我试图写一个wp查询来显示所有作者的所有帖子,但只有“Homme”作者,另一个只有“女性”。 以下是我的wp查询,用于显示所有帖子,无需按性别筛选: 工作正常。 这是我到目前为止试图只从“男人”性别获得的帖子,但它不起作用。。