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


Posted in PHP onDecember 31, 2015

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

媒体编辑页面的原始状态

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

很明显,在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,刷新一下媒体编辑页面,你会看到右边栏多了个分类目录:

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

给媒体文件添加标签

在当前主题的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,刷新一下媒体编辑页面,你会看到右边栏多了个标签栏:

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

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

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

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

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 相关文章推荐
上传多个文件的PHP脚本
Nov 26 PHP
生成php程序的php代码
Apr 07 PHP
精通php的十大要点(上)
Feb 04 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 PHP
PHP中的Iterator迭代对象属性详解
Apr 12 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 #PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 #PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 #PHP
详解Window7 下开发php扩展
Dec 31 #PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 #PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 #PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 #PHP
You might like
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
JS写滑稽笑脸运动效果
2020/05/28 Javascript
python3实现名片管理系统
2020/11/29 Python
python制作图片缩略图
2019/04/30 Python
Python中函数参数匹配模型详解
2019/06/09 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python lambda的使用详解
2021/02/26 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
大学生思想汇报范文
2013/12/31 职场文书
50岁生日感言
2014/01/23 职场文书
绿色环保口号
2014/06/12 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
文明班级申报材料
2014/12/24 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang