查询包含下级的类别的自定义分类

时间:2013-11-05 作者:Chris

我使用了Events Manager插件,它创建了一个自定义的“event”post类型和一个名为“event categories”的自定义分类法。

我有一个ID为43的“课程”类别。我还有许多儿童类别的课程,如“科学”、“英语”等。

我正在创建一个自动完成搜索,需要根据搜索词查询课程,但仅限于出现在“事件类别”分类法“事件的帖子类型”中并标记有“课程”类别或其任何子类别的帖子。

以下是我目前掌握的情况:

   global $wpdb, $table_prefix;
   $em_suggestions = $wpdb->get_results("
      SELECT post_name as value, post_title as label
      FROM {$table_prefix}posts 
      WHERE post_type = \'event\' 
      AND post_status = \'publish\' 
      AND post_title LIKE \'%$term%\' 
      ORDER BY post_title ASC
      LIMIT 0, 10
   ");
我只是在努力将分类法过滤器应用到它。

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

tax\\u query用于获取与特定分类法关联的帖子。

使用taxonomy slug 从版本3.1起,已弃用,支持“tax\\u query”

  • 税务查询(数组)–使用分类参数(3.1版提供)<分类学(分类法)
  • 字段(字符串)–按(\'id\'或\'slug\')选择分类术语(int/string/array)–分类术语
  • 包括\\u子级(布尔值)–是否包括用于层次分类的子级。默认为true
  • 运算符(字符串)–要测试的运算符。可能的值为“IN”、“NOT IN”、“AND”
  • $args = array(
        \'post_type\' => \'event\',
        \'posts_per_page\' => -1,
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'event-categories\',
                \'field\' => \'id\',
                \'terms\' => 43
            )
         )
    );
    
    $query = new WP_Query($args);
    
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post;
            // do something
        }
    }
    

    结束

    相关推荐

    Copy post taxonomy?

    我是Wordpress的新手,我想做的是:创建一个分类法(课程),该分类法与POST一样有效,但有区别:我需要为课程添加一些字段(如课程成本、年龄跨度、课程每周的哪一天等)。我想我可以在帖子分类中添加自定义字段,但我想将“普通帖子”与“课程”分开。我在PHP编程方面有很多经验,但Wordpress对我来说是新的。我了解分类法和挂钩的概念,并且了解WP如何处理主题、子主题、插件等。我在安装了一个名为Simple Taxonomy的插件https://github.com/herewithme/simple-

    查询包含下级的类别的自定义分类 - 小码农CODE - 行之有效找到问题解决它

    查询包含下级的类别的自定义分类

    时间:2013-11-05 作者:Chris

    我使用了Events Manager插件,它创建了一个自定义的“event”post类型和一个名为“event categories”的自定义分类法。

    我有一个ID为43的“课程”类别。我还有许多儿童类别的课程,如“科学”、“英语”等。

    我正在创建一个自动完成搜索,需要根据搜索词查询课程,但仅限于出现在“事件类别”分类法“事件的帖子类型”中并标记有“课程”类别或其任何子类别的帖子。

    以下是我目前掌握的情况:

       global $wpdb, $table_prefix;
       $em_suggestions = $wpdb->get_results("
          SELECT post_name as value, post_title as label
          FROM {$table_prefix}posts 
          WHERE post_type = \'event\' 
          AND post_status = \'publish\' 
          AND post_title LIKE \'%$term%\' 
          ORDER BY post_title ASC
          LIMIT 0, 10
       ");
    
    我只是在努力将分类法过滤器应用到它。

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

    tax\\u query用于获取与特定分类法关联的帖子。

    使用taxonomy slug 从版本3.1起,已弃用,支持“tax\\u query”

  • 税务查询(数组)–使用分类参数(3.1版提供)<分类学(分类法)
  • 字段(字符串)–按(\'id\'或\'slug\')选择分类术语(int/string/array)–分类术语
  • 包括\\u子级(布尔值)–是否包括用于层次分类的子级。默认为true
  • 运算符(字符串)–要测试的运算符。可能的值为“IN”、“NOT IN”、“AND”
  • $args = array(
        \'post_type\' => \'event\',
        \'posts_per_page\' => -1,
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'event-categories\',
                \'field\' => \'id\',
                \'terms\' => 43
            )
         )
    );
    
    $query = new WP_Query($args);
    
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post;
            // do something
        }
    }