我有个小问题。我有一个自定义分类法“rodzaj”,其值为I.ex.obrazek。我使用此代码添加帖子:
$postArray = array(
\'post_status\' => \'publish\',
\'post_author\'=> get_current_user_id(),
\'post_category\'=>array($catId),
\'post_title\' => $_POST[\'titlePhoto\'],
\'tax_input\' => array( \'rodzaj\' => array( \'obrazek\') ) ,
);
这段代码添加了一篇文章,但没有分类法。我也试过:
wp_set_object_terms($postId, "obrazek", \'rodzaj\', false);
也不管用。
工作代码为:
wp_set_post_terms( $postId, array( \'obrazek\'), \'rodzaj\' );
为什么前两个函数不起作用?
我一开始就犯了错误。这是完整的工作代码:
$catId = get_cat_ID("Obrazki");
$postArray = array(
\'post_status\' => \'publish\',
\'post_author\'=> get_current_user_id(),
\'post_category\'=>array($catId),
\'post_title\' => $_POST[\'titlePhoto\'],
\'tags_input\' => explode(\',\', $_POST[\'tagsPhoto\'])
);
$postId = wp_insert_post($postArray);
if($postId)
{
wp_set_object_terms($postId, "obrazek", \'rodzaj\', false);
}
仍然不起作用:wp\\u set\\u post\\u terms($postId,“obrazek”,“rodzaj”,false);
和postArray()中的“tax\\u input”=>数组(“rodzaj”=>数组(“obrazek”))
SO网友:Luca Reghellin
如果分类法是分层的,那么wp\\u insert\\u post的tax\\u输入参数需要一个数组If id,而不是slug。
\'tax_input\' => array(
\'name_of_taxonomy\' => array(125) // say your term_id is 125
)
执行此操作后,您可能需要使用以下内容更新术语计数:
add_action(\'init\',\'reset_terms_counts\', 11, 0);
function reset_terms_counts(){
$terms_ids = get_terms(array(
\'taxonomy\' => \'taxonomy_name\'
,\'fields\' => \'ids\'
,\'hide_empty\' => false
));
if(is_array($terms_ids)) wp_update_term_count_now($terms_ids, \'taxonomy_name\');
}
}