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 相关文章推荐
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
深入php常用函数的使用汇总
Jun 08 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
FireFox浏览器使用Javascript上传大文件
Oct 30 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 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注释实例技巧
2008/10/03 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP7变量处理机制修改
2021/03/09 PHP
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
python 接收处理外带的参数方法
2018/12/03 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
《鸿门宴》教学反思
2014/04/22 职场文书
爱与责任演讲稿
2014/05/20 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL