查询在WordPress中添加分类法术语

时间:2013-07-11 12:39:20

标签: php wordpress taxonomy

我正在使用Wordpress的JSON API插件,并且能够将信息添加到元框(自定义字段)到任何自定义帖子类型,但不能对分类法做同样的事情。

以下元框(自定义字段)的代码:

// For prettier URLs, a map of post_type => (url_param_name => meta_field_name)

$CUSTOM_POST_META_FIELDS = array(
'classifieds' => array(
'price' => 'wpcf-price-with-discount',
'condition' => 'wpcf-condition'
)
);

// Handle metadata
global $CUSTOM_POST_META_FIELDS;
if ($this->id && !empty($CUSTOM_POST_META_FIELDS[$wp_values['post_type']])) {
  foreach ($CUSTOM_POST_META_FIELDS[$wp_values['post_type']] as $param => $meta) {
    update_post_meta($this->id, $meta, $values[$param]);
  }
}

您能否建议使用类似的代码添加分类条款?例如,帖子类型'分类广告'已获得分类'type',我想为其添加任何条款。

2 个答案:

答案 0 :(得分:0)

另外一个想法是在// Handle metadata

之后以某种方式修改代码的第二部分
 function set_custom_taxonomies($type) {
global $json_api;
$taxonomies = get_taxonomies(array(
  'object_type' => array($type),
  'public'   => true,
  '_builtin' => false
), 'objects');
foreach ($taxonomies as $taxonomy_id => $taxonomy) {
  $taxonomy_key = "taxonomy_$taxonomy_id";
  if (!$json_api->include_value($taxonomy_key)) {
    continue;
  }
  $taxonomy_class = $taxonomy->hierarchical ? 'JSON_API_Category' : 'JSON_API_Tag';
  $terms = get_the_terms($this->id, $taxonomy_id);
  $this->$taxonomy_key = array();
  if (!empty($terms)) {
    $taxonomy_terms = array();
    foreach ($terms as $term) {
      $taxonomy_terms[] = new $taxonomy_class($term);
    }
    $this->$taxonomy_key = $taxonomy_terms;
  }
}
 }

提前谢谢!

答案 1 :(得分:0)

通过JSON API发布自定义帖子类型时,我使用以下内容设置了特定类别。可以修改以从$ values获取数组,然后获取所有项的id数组。

将以下内容放在controllers / posts.php

的函数save()中

if (isset($wp_values['ID'])) {

以下两者:

$this->id = wp_update_post($wp_values);
$this->id = wp_insert_post($wp_values);

//First get the id of the category(custom taxonomy) you want this post to appear. I
$term = term_exists( 'slug', 'type' ); //returns term's id if it exists

wp_set_post_terms($this->id,$term,'your_custom_taxonomy');