我正在使用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',我想为其添加任何条款。
答案 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');