外观
WordPress 插件
本文介绍如何使用 WordPress 插件对接米卡云转码系统。
功能概述
WordPress 插件提供了一套完整的对接方案,可以在 WordPress 网站中展示和管理云转码系统的视频内容。
主要功能
- 视频列表展示 - 在 WordPress 页面中显示视频列表
- 视频详情页 - 播放视频和显示视频信息
- 分类筛选 - 按分类浏览视频
- 短代码支持 - 通过短代码嵌入视频
- 编辑器集成 - 在文章编辑器中快速插入视频
下载插件
插件下载地址
或从项目目录获取插件文件:
wordpress/mika-media-gallery/安装插件
安装步骤
- 将
mika-media-gallery文件夹上传到 WordPress 的/wp-content/plugins/目录 - 在 WordPress 后台 插件 页面找到"云转码"
- 点击 启用 激活插件
配置插件
获取 API Key
在米卡云转码后台获取 API Key:
- 登录云转码管理后台
- 进入 系统设置 → API 密钥设置
- 点击 添加 API Key
- 选择用户并生成 Key
- 复制 User ID 和 API Key
配置连接
在 WordPress 后台配置插件:
- 进入 设置 → 云转码设置
- 填写以下信息:
| 配置项 | 说明 | 示例 |
|---|---|---|
| API 地址 | 云转码系统的 API 地址 | http://your-domain.com/api/v1/wordpress |
| User ID | 用户 ID | 1 |
| API Key | 32 位 API 密钥 | your-32-character-api-key-here |
| 缓存时长 | 数据缓存时间(秒) | 3600 |
| 每页数量 | 列表每页显示数量 | 12 |
- 点击 验证连接 测试配置
- 保存设置
API 认证
认证方式
插件支持两种认证方式:
方式一:HTTP Header(推荐)
http
X-User-ID: 1
X-API-Key: your-32-character-api-key-here方式二:查询参数
?user_id=1&api_key=your-32-character-api-key-hereAPI 端点
| 端点 | 方法 | 说明 |
|---|---|---|
/verify | GET | 验证凭证 |
/user | GET | 获取用户信息 |
/videos | GET | 获取视频列表 |
/videos/{id} | GET | 获取视频详情 |
/videos | POST | 上传视频 |
/categories | GET | 获取分类列表 |
使用短代码
视频列表
在页面或文章中显示视频列表:
[mika_videos]支持的参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| category | 分类 ID | 全部 |
| limit | 显示数量 | 12 |
| columns | 列数 | 4 |
| orderby | 排序字段 | date |
| order | 排序方式 | DESC |
示例:
[mika_videos category="1" limit="8" columns="4"]单个视频
在页面中嵌入单个视频:
[mika_video id="123"]支持的参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| id | 视频 ID | 必填 |
| width | 播放器宽度 | 100% |
| height | 播放器高度 | auto |
| autoplay | 自动播放 | false |
视频分类
显示视频分类列表:
[mika_categories]编辑器集成
古腾堡编辑器
在古腾堡编辑器中:
- 点击 添加区块
- 搜索"云转码"
- 选择要添加的区块类型
- 配置区块参数
经典编辑器
在经典编辑器中:
- 点击工具栏的 云转码 按钮
- 选择要插入的内容类型
- 选择视频或设置参数
- 点击插入
PHP 开发示例
获取视频列表
php
<?php
// 获取插件实例
$mika = mika_media_gallery();
// 获取视频列表
$videos = $mika->api->get_videos(array(
'page' => 1,
'page_size' => 20,
'category_id' => 1
));
if ($videos) {
foreach ($videos['data'] as $video) {
echo '<h3>' . esc_html($video['title']) . '</h3>';
echo '<video src="' . esc_url($video['m3u8']) . '"></video>';
}
}
?>获取单个视频
php
<?php
$video = $mika->api->get_video(123);
if ($video) {
echo '<h1>' . esc_html($video['title']) . '</h1>';
echo '<p>时长: ' . esc_html($video['duration']) . '</p>';
echo '<p>播放量: ' . intval($video['count']) . '</p>';
}
?>验证 API 连接
php
<?php
$is_valid = $mika->api->verify();
if ($is_valid) {
echo '连接成功';
} else {
echo '连接失败,请检查配置';
}
?>模板自定义
覆盖模板
在主题目录创建以下文件可覆盖默认模板:
your-theme/
└── mika-media-gallery/
├── video-list.php # 视频列表模板
├── video-single.php # 单个视频模板
├── video-player.php # 播放器模板
└── category-list.php # 分类列表模板钩子和过滤器
php
// 修改视频列表查询参数
add_filter('mika_videos_query_args', function($args) {
$args['page_size'] = 24;
return $args;
});
// 视频显示前处理
add_action('mika_before_video_display', function($video) {
// 自定义处理
});
// 视频显示后处理
add_action('mika_after_video_display', function($video) {
// 自定义处理
});常见问题
Q: 视频地址显示 127.0.0.1?
这是因为分发服务器配置使用了本地地址。
解决方法:
- 登录云转码管理后台
- 进入 分发管理 → 服务器管理
- 编辑分发服务器,将服务器地址改为公网域名
- 例如:
http://your-domain.com而不是http://127.0.0.1:7501 - 保存后,重新转码视频(已转码的视频需要重新转码才能更新地址)
重要
分发服务器的地址会直接存储到视频记录中。修改配置后,只有新转码的视频会使用新地址。已转码的视频需要重新转码。
Q: API 连接失败?
- 检查 API 地址是否正确
- 检查 User ID 和 API Key 是否正确
- 确认云转码服务器是否正常运行
- 检查服务器防火墙设置
Q: 视频无法播放?
- 检查视频是否已转码完成
- 检查 M3U8 地址是否可访问(不应该是 127.0.0.1)
- 确认跨域设置是否正确
- 检查浏览器控制台错误
Q: 缓存不更新?
- 在插件设置中清除缓存
- 减少缓存时长
- 手动删除 WordPress transient 缓存
Q: 如何获取 API Key?
- 登录云转码管理后台
- 进入 系统设置 → API 密钥设置
- 点击添加,选择用户并生成 Key