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+Html+缓存
Nov 25 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
Yii2如何批量添加数据
May 17 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
php模拟实现斗地主发牌
Apr 22 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超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
jQuery操作select的实例代码
2012/06/14 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Django中多种重定向方法使用详解
2019/07/17 Python
python实现处理mysql结果输出方式
2020/04/09 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
保安拾金不昧表扬信
2014/01/15 职场文书
暑期社会实践方案
2014/02/05 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
授权委托书格式
2014/07/31 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
宣传委员竞选稿
2015/11/19 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android