WordPress中给媒体文件添加分类和标签的PHP功能实现

5年以前  |  阅读数:919 次  |  编程语言:PHP 

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

媒体编辑页面的原始状态

20151231154830850.png \(600×362\)

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

给媒体文件添加分类

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


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

保存并上传functions.php,刷新一下媒体编辑页面,你会看到右边栏多了个分类目录:

20151231154904481.png \(600×360\)

给媒体文件添加标签

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


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

保存并上传functions.php,刷新一下媒体编辑页面,你会看到右边栏多了个标签栏:

20151231154944766.png \(600×346\)

同时,在多媒体列表页,也添加显示媒体的分类和标签,同样左边栏的多媒体菜单下也多了分类目录和标签两个子菜单:

20151231154959705.png \(600×229\)

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


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

另一种方法

其实还有一种方法实现,并且可以实现给多媒体添加独立的分类,而不必混用文章的分类,而且在WordPress后台的多媒体列表页可以直观显示媒体的分类。

使用方法,同样是在当前主题的functions.php中添加php代码:


    function ludou_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', 'ludou_create_media_category' );

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例