在帖子类型中动态添加类别

时间:2018-02-08 作者:Nikko Dela Cruz

我有一个代码,可以在自定义帖子类型中添加帖子,但添加类别不起作用。

$args = array(
    \'post_title\' => $title ,
    \'post_status\'   => \'publish\',
    \'post_type\' => \'mypost\' 
);

$post_id = wp_insert_post($args);

$category_ids = array(38,39);
wp_set_post_categories( $post_id, $category_ids, \'category\');

2 个回复
SO网友:cybmeta

您需要注册支持的自定义帖子类型category 分类法:

add_action(\'init\', \'cyb_register_post_type\');
function cyb_register_post_type() {
    $args = array(
        // All the other args
        \'taxonomies\'          => array( \'category\' ),
    );

    register_post_type( \'my_post_type\', $args );
}
然后可以设置自定义帖子类型和categoy 分类法,但必须更正代码。

由此:

wp_set_post_categories( $post_id, $category_ids, \'category\');
为此(删除以前的类别并替换为新类别):

wp_set_post_categories( $post_id, $category_ids );
// The above line is equivalent to
// wp_set_post_categories( $post_id, $category_ids, false );
// or
// wp_set_post_terms( $post_id, $category_ids, \'category\', false );
或至(不删除以前的类别,添加新类别):

wp_set_post_categories( $post_id, $category_ids, true );
您还可以注册自定义分类法并将其用于自定义帖子类型:

add_action(\'init\', \'cyb_register_post_type_and_taxonomy\');
function cyb_register_post_type_and_taxonomy() {

    $post_type_args = array(
        // All the other args
        \'taxonomies\'          => array( \'my_custom_taxonomy\' ),
    );

    register_post_type( \'my_post_type\', $post_type_args );

    $taxonomy_args = array(
          // Arguments for the custom taxonomy
          // See https://developer.wordpress.org/reference/functions/register_taxonomy/
    );

    register_taxonomy( \'my_custom_taxonomy\', \'my_post_type\', $args );

}
然后使用wp_set_post_terms(), 不wp_set_post_categories():

wp_set_post_terms( $post_id, $category_ids, \'my_custom_taxonomy\');

SO网友:Parth Patel

在对自定义帖子类型执行此操作时,需要使用分类法。我会建议你<?php wp_set_post_terms( $post_id, $terms, $taxonomy, $append ) ?> 使用。请参考this link 有关函数的详细使用信息。

结束

相关推荐

WP_LIST_CATEGORIES()-将div添加到每个li?

我正在使用wp_list_categories() 从特定的作者ID打印出每个类别的链接,这很好。然而,我还想添加一个div 致各li 将保留类别的图标。我怎样才能做到这一点?这是我当前的代码:<?php // Display a list of all categories associated with author $cat_array = array(); $args = array( \'author\' =>