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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
php $_ENV为空的原因分析
Jun 01 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
ThinkPHP之getField详解
Jun 20 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
PHP 应用容器化以及部署方法
Feb 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
jquery中常用的SET和GET
2009/01/13 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JS交换变量的方法
2015/01/21 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
vue.js表格分页示例
2016/10/18 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
Python中字典的setdefault()方法教程
2017/02/07 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
对Python中range()函数和list的比较
2018/04/19 Python
python 正确保留多位小数的实例
2018/07/16 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
PHP统计代码行数的小代码
2019/09/19 Python
Python 使用type来定义类的实现
2019/11/19 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
工商治理实习生的自我评价
2014/01/15 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
警示教育片观后感
2015/06/17 职场文书
员工规章制度范本
2015/08/07 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技
Redis 限流器
2022/05/15 Redis
MySQL索引失效场景及解决方案
2022/07/23 MySQL