Set terms in a custom post

时间:2014-01-23 作者:devwin

我有一个自定义贴子“艺术家”和一个分类/类别“艺术家类别”,我想创建(通过开发)一个新贴子并设置艺术家的类别,但它不起作用。

我用以下代码对其进行了测试:

function createNewPost( $response ){
    global $userMeta;

    $userID = $response->ID;
    $user = new WP_User( $userID );

    $role = $userMeta->getUserRole();
    //$catId = get_cat_ID("dj");

    if( $role = \'artiste\' ){ 

        $newPost = array(
          \'post_title\'    => $user->nickname, 
          \'post_content\'  => $user->description,
          \'post_status\'   => \'pending\',
          \'post_author\'   => $userID,
          \'post_type\'     => \'cpt_artists\',
          \'tax_input\' => array(\'artist-category\' => array(\'dj\')
        ));

        $post_id = wp_insert_post( $newPost );

        wp_set_post_terms( $post_id, array( \'dj\'), \'artist-category\');

    }

}
但它不起作用。

对于测试,我列出了wordpress的所有分类法,结果是:

类别、post\\u标记、nav\\u菜单、link\\u类别、post\\u格式

为什么这里没有列出我的自定义分类法“艺术家类别”?

2 个回复
SO网友:ScottD

我知道这是个老问题,但tax_input 数组可能应该是这样的,因为它看起来像一个类别:

\'tax_input\' => array(\'artist-category\' => array( 3 ) //use the ID of the category, not the name of the category

从WordPress Codex开始wp_set_post_terms

如果要输入层次分类法(如类别)的术语,请使用IDs。如果要添加标记等非层次术语,请使用名称。

资源:

SO网友:Dk-Macadamia

您可以尝试以下操作:例如,您的类别id为3,然后:

wp_set_post_categories($post_id, array("3"));

for more info

结束

相关推荐

从QUERY_POSTS切换到wp_Query,分页不再起作用

将静态首页上的循环从query\\u posts切换到wp\\u query。除分页链接(以前正常工作)外,其他所有链接都正常工作。示例可现场查看here 在“工作”部分。这是我的循环: <?php $paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1; $args = array(\'category_name\'=>\'portfolio\',\'posts_per_pag