如何仅使用分类术语ID(或分类术语名称)查找分类名称

时间:2012-01-12 作者:Gabriela

我正在开发一个多搜索过滤器功能,我需要过滤搜索结果页面。

我有3种自定义帖子类型,每种类型都有自己的自定义分类法。所以我有自定义的帖子类型:

CPT书籍<水果

  • CPTcars
    1. 这些自定义帖子类型中的每一个都附带了自定义分类。所以我们有

      有分类法的图书有分类法的水果有分类法的水果有分类法的水果有分类法的水果有分类法的水果有分类法的汽车,每个分类法中都有几个术语。所以我们有:

      有分类的图书类别,有术语的图书类别:戏剧、犯罪、冒险,有术语的汽车类别:梅赛德斯、福特searchform。php我有搜索输入和一个函数,可以从所有自定义分类法中获取所有术语,并将它们放入下拉列表中。

      因此HTML如下所示:

      <ul> 
          <li><input type="text" value="" name="s" class="field s"></li>
          <li>Categories:</li>    
          <li>
              <select class="postform" id="cat" name="cat">
                  <option selected="selected" value="0">All categories</option>
                  <option value="99">Adventure</option>
                  <option value="41">Apples</option>
                  <option value="23">Banana</option>
                  <option value="31">Crime</option>
                  <option value="19">Drama</option>
                  <option value="103">Ford</option>
                  <option value="24">Mercedes</option>
                  <option value="67">Orange</option>
              </select>
          </li>
          <li><input type="submit" id="searchsubmit" value="Search" /></li>
      </ul>
      
      当用户将搜索输入留空,但在该下拉列表中选择了一个分类术语时,我需要搜索页面来过滤我的搜索结果,以便它只显示该分类术语下的自定义帖子类型。

      这里最大的谜团是,如果我有术语名称和术语ID(下拉表单中的“值”字段),我如何找到一种方法来获取要在WP\\U查询类中使用的分类名称。在分类学上我可以很容易做到这一点。php,但我在这里搜索。php!

      任何帮助都将不胜感激:)

      最好的,加布里埃拉

  • 2 个回复
    SO网友:mor7ifer

    使用get_term 作用如果查看它使用的sql代码,如下所示:

    $_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND t.term_id = %d LIMIT 1", $taxonomy, $term) );
    
    这正是你需要的!

    SO网友:dwenaus

    在选项值中,您可以使用如下内容

    <option value="tax_slug_a[ 103 ]">Ford</option>
    <option value="tax_slug_a[ 24 ]"> Mercedes</option>
    <option value="tax_slug_b[ 67 ]"> Orange</option>
    
    最终提交的表单将为您提供一个包含所选税号信息和术语id的数组。

    结束

    相关推荐

    Search Using Post ID

    我希望能够在搜索框中输入帖子ID,以便在搜索结果中返回准确的帖子。我还想保留搜索帖子/页面标题和内容的能力。例如,用户在搜索框中输入“#123”,搜索结果仅返回post 123。然而,如果我在搜索框中输入“123”,它将返回任何内容或标题中包含“123”的帖子/页面。This article 解释如何在管理中实现我所追求的目标-我只需要前端的同等功能!非常感谢您的帮助,谢谢。