【问题标题】:A list of taxonomies in WordPress depending on Custom Post TypeWordPress 中的分类列表,具体取决于自定义帖子类型
【发布时间】:2018-08-07 03:49:36
【问题描述】:

我有一个名为 houses 的自定义帖子类型。 在此帖子类型中,我有自定义分类法,例如:

(名称 - 字段类型 - 元键)

  • 城市(分类 - 城市)
  • 海滩(自定义帖子类型 - 海滩)
  • 类型(分类 - 类型)
  • 状态(分类 - 状态)

我的网站上还有一个插件,有 4 种选择:

  • 城市
  • 海滩
  • 类型
  • 状态

我需要做的是,当我选择一个选项时更新这些选择。

例如,如果我为 City 选择 Barcelona,为 Status 选择 Sale,我需要携带所有 TypesBeaches 这些选项的共同点。

我现在不需要获取帖子,只需更新选择选项,如过滤器。

这里是一个例子:

【问题讨论】:

    标签: php wordpress custom-post-type custom-taxonomy


    【解决方案1】:

    在解决了这个问题之后,我找到了一个可行的解决方法。

    由于每个自定义字段都与我的自定义帖子类型相关,因此我可以使用 wp_get_object_terms 获取每个自定义分类的术语。

    使用查询检索所有帖子:

    $args = array(
       'post_type' => 'houses'
    );
    $houses = new WP_Query($args);
    $posts = $houses->posts;
    
    // get an array with all ID fields
    $my_post_ids = wp_list_pluck($posts, 'ID');
    

    之后我可以得到上面这些 ID 的条款:

    $city_terms = wp_get_object_terms($my_post_ids, 'cities');
    $status_terms = wp_get_object_terms($my_post_ids, 'status');
    $type_terms = wp_get_object_terms($my_post_ids, 'type');
    

    为了在选择一个选项以刷新选择信息时获得我需要的行为,我只需要为此更新查询。例如,如果我选择了某个城市:

    $args = array( 
      'post_type' => 'houses',
      'meta_query' => array(
        'relation' => 'AND',
          array(
            'key' => 'city',
            'value' => 107,
            'compare' => 'LIKE'
          )
        )
    );
    

    要进行过滤,只需在 meta_query 数组中添加一个新关系即可。

    $args = array( 
      'post_type' => 'houses',
      'meta_query' => array(
        'relation' => 'AND',
          array(
            'key' => 'city',
            'value' => 107,
            'compare' => 'LIKE'
          ),
          array(
            'key' => 'status',
            'value' => 80,
            'compare' => 'LIKE'
          )
        )
    );
    

    所有这些都与 Ajax 相结合,为每个选择更新数据。

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 2015-03-15
      相关资源
      最近更新 更多