上传媒体(图片)并设置类别

时间:2018-10-10 作者:gdfgdfg

我想上传一张图片并附加一个类别。这是我的代码:

function upload_cover(WP_REST_Request $request) {

    require_once( ABSPATH . \'wp-admin/includes/image.php\' );
    require_once( ABSPATH . \'wp-admin/includes/file.php\' );
    require_once( ABSPATH . \'wp-admin/includes/media.php\' );

    $attachment_id = media_handle_upload(\'poster\', 0);
    $event = array(
        \'post_status\' => \'publish\',
        \'post_type\'   => \'poster\',
        \'meta_input\'  => array(),
        \'post_category\' => array(\'poster\')
    );
    $post_id = wp_insert_post( $event );
    wp_set_post_terms($post_id, \'poster\', \'category\');
}
上传器工作正常,但图像没有附加任何类别。我尝试了以下方法:

$cat_id = get_cat_ID(\'cover\');

add_term_meta( $cat_id, \'poster\', $post_id, true );
wp_set_post_categories($post_id, array(\'poster\'), true);
wp_set_post_terms($post_id, array(\'poster\'), \'category\');
对于图像的类别,我使用这个插件Media Library Categories.

2 个回复
SO网友:Rachid Chihabi

首先,如果要将类别应用于附件,必须为附件启用类别。

您可以使用register_taxonomy_for_object_type() 作用在插件文件或主题函数文件中,添加以下内容:

function wp_add_categories_to_attachments() {
    register_taxonomy_for_object_type( \'category\', \'attachment\' );
}
add_action( \'init\' , \'wp_add_categories_to_attachments\' );

SO网友:gdfgdfg

这解决了问题:wp_set_object_terms($attachment_id, \'poster\', \'category\', true);

https://developer.wordpress.org/reference/functions/wp_set_object_terms/

结束

相关推荐

Organizing media uploads

我的一个客户想把他的WordPress网站转移到我的服务器上。问题是他的网站没有在他的上传文件夹中使用子文件夹,而他上传文件夹的根目录中有超过1000000个文件。有没有一种方法可以将他的所有帖子上传到文件夹中,而不会丢失帖子中的附加链接和特色图片?