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 获取完整url地址
Dec 20 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
php连接数据库代码应用分析
May 29 PHP
php ajax 静态分页过程形式
Sep 02 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
PHP fprintf()函数用法讲解
Feb 16 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
学习2014年全国两会心得体会
2014/03/12 职场文书
科研课题实施方案
2014/03/18 职场文书
文明寄语大全
2014/04/11 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS