WP_INSERT_POST在以订阅者身份登录时不更新所选的自定义分类

时间:2013-05-14 作者:Salih K

这是我的代码,如果以管理员身份登录,当我尝试从前端发布数据时,它可以正常工作,但如果以订阅者身份登录,代码可以正常工作,但没有插入我选择的分类术语,代码如下。。

  $new_post = array(
    \'post_title\' => $postTitle,
    \'post_content\' => $post,
    \'post_status\' => \'publish\',
    \'post_date\' => date(\'Y-m-d H:i:s\'),
    \'post_author\' => $user_ID,
    \'post_type\' => \'publications\',
    \'tax_input\' => array( \'publicationstype\'=> $term_id ) 
    //\'post_category\' => array(6)
);

wp_insert_post($new_post);
这里的“publicationstype”是自定义分类法,有谁可以帮助我!!thanx提前

1 个回复
最合适的回答,由SO网友:Milo 整理而成

这是因为wp_insert_post 在添加条款之前检查当前用户功能:

if ( current_user_can($taxonomy_obj->cap->assign_terms) )
    wp_set_post_terms( $post_ID, $tags, $taxonomy );
要绕过此问题,请使用wp_set_object_terms 而是在之后wp_insert_post 添加条款:

$new_post = array(
    \'post_title\' => $postTitle,
    \'post_content\' => $post,
    \'post_status\' => \'publish\',
    \'post_date\' => date(\'Y-m-d H:i:s\'),
    \'post_author\' => $user_ID,
    \'post_type\' => \'publications\'
);
$new_id = wp_insert_post( $new_post );
wp_set_object_terms( $new_id, $term_id, \'publicationstype\' );

结束

相关推荐

Taxonomy Tag Conditionals

我使用jigoshop作为主要的电子商务插件。Jigoshop使用分类法调用、product\\u cat和product\\u标记。在我的主题中,我使用默认(h5bp)404。php,所以每次标记不存在时,我都会得到默认的404。但我需要一个特殊的模板THIS TAG DO NOT EXIST我该怎么做?我使用的是无意义的:@@@ <?php if (is_tax()){ jigoshop_get_template( \'product_taxonomy-