WordPress让媒体文件也有分类和标签

从WordPress后台媒体库上传的媒体文件,不像文章那样可以给它指定分类和标签,但是很多时候我们又需要这样的功能,如一些下载站、图片站等。

多媒体菜单的原始状态

很明显,在WordPress后台多媒体,默认情况下是没有分类和标签给你选的。

给媒体文件添加分类

在当前主题的functions.php中添加以下php代码:

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

保存并上传functions.php,刷新一下后台页面,你会看到多了个分类目录菜单:

给媒体文件添加标签

在当前主题的functions.php中添加以下代码:

function netnote_add_tags_to_attachments() {
   register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}
add_action( 'init' , 'netnote_add_tags_to_attachments' );

保存并上传functions.php,刷新一下后台页面,你会看到多了个标签菜单:

类似添加文章分类和标签一样:

同时,在多媒体列表页,也添加显示媒体的分类和标签:

好了,给媒体文件添加分类和标签就这么简单,我们可以将上面添加的代码合成下面的代码,更简洁更高效:

function netnote_add_categories_tags_to_attachments() {
   register_taxonomy_for_object_type( 'category', 'attachment' );
   register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}
add_action( 'init' , 'netnote_add_categories_tags_to_attachments' );

以下实现方法不必混用文章的分类,而且在WordPress后台的多媒体列表页可以直观显示媒体的分类。

function netnote_create_media_category() {
 $args = array(
 'label' => '媒体分类',
 'hierarchical' => true,
 'show_admin_column' => true,
 'show_ui' => true,
 'query_var' => true,
 'rewrite' => true,
 );

register_taxonomy( 'attachment_category', 'attachment', $args );
}

add_action( 'init', 'netnote_create_media_category' );

如果你不排斥使用插件,推荐这个插件:Media Library Categories,可以实现批量修改媒体文件的分类。