1

我正在为 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]);
  }
}

您能否建议添加分类术语的类似代码?例如,帖子类型“分类”有分类“类型”,我想向其中添加任何术语。

4

2 回答 2

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'); 
于 2013-11-24T00:29:22.993 回答
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;
  }
}
 }

先感谢您!

于 2013-07-12T14:32:46.400 回答