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中一个控制字符串输出的函数
Oct 09 PHP
一个好用的分页函数
Nov 16 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 PHP
laravel框架与其他框架的详细对比
Oct 23 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
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
php标签云的实现代码
2012/10/10 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
python连接字符串的方法小结
2015/07/13 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Django框架models使用group by详解
2020/03/11 Python
python sleep和wait对比总结
2021/02/03 Python
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
20岁生日感言
2014/01/13 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
太太口服液广告词
2014/03/20 职场文书
新春联欢会主持词
2014/03/24 职场文书
商务助理求职信范文
2014/04/20 职场文书
Redis入门教程详解
2021/08/30 Redis
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
Golang解析JSON对象
2022/04/30 Golang
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL
Nginx报404错误的详细解决方法
2022/07/23 Servers