Pi Music
主文件
PiMusic.php
样式部分
逻辑部分
前端模板
后端模板
图片部分
主文件 - PiMusic.php
程序的核心控制文件,负责管理所有组件和模块。
功能说明
此文件是程序的入口点,主要执行以下操作:
- 定义插件常量和版本信息
- 注册激活/停用钩子
- 加载所有必要组件(前端/后端)
- 初始化现代代码和样式支持
- 设置本地文化文本
// 插件初始化代码
// 版本信息
define('PI_MUSIC_VERSION', '1.0.0');
define('PI_MUSIC_PATH', dirname(__FILE__) . '/');
// 加载核心组件
require_once PI_MUSIC_PATH . 'inc/admin-settings.php';
require_once PI_MUSIC_PATH . 'inc/shortcode.php';
// 激活/停用钩子
register_activation_hook(__FILE__, 'pi_music_activate');
register_deactivation_hook(__FILE__, 'pi_music_deactivate');
// 初始化函数
function pi_music_init() {
// 设置文本域
load_plugin_textdomain('pi-music', false, PI_MUSIC_PATH . 'languages/');
// 初始化前端功能
if (!is_admin()) {
add_action('wp_enqueue_scripts', 'pi_music_enqueue_scripts');
}
}
文件结构
主文件负责组织整个插件的架构,确保各个模块能够协同工作。
前端样式 - frontend.css
负责播放器前端界面的样式设计和响应式布局。
主要功能
- 播放器界面样式
- 响应式布局适配
- 动画效果和过渡
- 主题颜色变量
- 自定义滚动条样式
/* 播放器容器样式 */
.pi-music-player {
width: 100%;
max-width: 600px;
background: var(--player-bg);
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
/* 进度条样式 */
.pi-progress-bar {
height: 4px;
background: var(--progress-bg);
border-radius: 2px;
cursor: pointer;
}
/* 播放控制按钮 */
.pi-control-btn {
width: 40px;
height: 40px;
border-radius: 50%;
border: none;
background: var(--accent-color);
color: white;
cursor: pointer;
transition: transform 0.2s ease;
}
.pi-control-btn:hover {
transform: scale(1.05);
}
前端逻辑 - frontend.js
处理播放器的交互逻辑和音频控制功能。
主要功能
- 音频播放控制
- 进度条交互
- 播放列表管理
- 音量控制
- 键盘快捷键支持
// 播放器类
class PiMusicPlayer {
constructor(element) {
this.player = element;
this.audio = element.querySelector('audio');
this.playBtn = element.querySelector('.pi-play-btn');
this.progressBar = element.querySelector('.pi-progress-bar');
this.initEvents();
}
initEvents() {
// 播放/暂停按钮
this.playBtn.addEventListener('click', () => this.togglePlay());
// 进度条点击
this.progressBar.addEventListener('click', (e) => this.seek(e));
// 音频时间更新
this.audio.addEventListener('timeupdate', () => this.updateProgress());
}
togglePlay() {
if (this.audio.paused) {
this.audio.play();
this.playBtn.innerHTML = '&pause;';
} else {
this.audio.pause();
this.playBtn.innerHTML = '&play_arrow;';
}
}
seek(e) {
const width = this.progressBar.clientWidth;
const clickX = e.offsetX;
const duration = this.audio.duration;
this.audio.currentTime = (clickX / width) * duration;
}
updateProgress() {
const progress = (this.audio.currentTime / this.audio.duration) * 100;
this.progressBar.querySelector('.pi-progress-fill').style.width = `${progress}%`;
}
}
// 初始化所有播放器
document.querySelectorAll('.pi-music-player').forEach(player => {
new PiMusicPlayer(player);
});
后台样式 - admin.css
管理后台界面的样式设计,提供良好的用户体验。
主要功能
- 设置页面样式
- 媒体库集成样式
- 自定义元框样式
- 响应式表格样式
- 管理通知样式
后台逻辑 - admin.js
处理管理后台的交互逻辑和表单验证。
主要功能
- 设置表单验证
- 媒体上传处理
- 动态选项切换
- AJAX请求处理
- 预览功能实现
播放器页面 - player-page.php
完整播放器页面的模板文件。
主要功能
- 全屏播放器界面
- 播放列表展示
- 歌词显示区域
- 相关歌曲推荐
- 分享功能集成
迷你播放器 - mini-player.php
嵌入式迷你播放器的模板文件。
主要功能
- 简约播放器界面
- 悬浮播放控制
- 底部固定显示
- 歌曲信息展示
- 展开/收起动画
设置页面 - admin-settings.php
插件设置页面的后台模板。
主要功能
- 全局设置选项
- 播放器样式配置
- API接口设置
- 缓存清理功能
- 高级选项控制
文章元数据 - post-meta.php
为文章添加音乐相关元数据的界面。
主要功能
- 音乐URL输入框
- 歌曲信息表单
- 封面图片上传
- 歌词文本编辑
- 播放列表关联
短代码功能 - shortcode.php
提供各种短代码功能的实现。
主要功能
- [pi_music] 播放器短代码
- [pi_playlist] 播放列表短代码
- [pi_song] 单曲展示短代码
- 参数配置支持
- 自定义样式选项
图标资源 - icons/
存放播放器使用的图标资源。
包含文件
- play.svg - 播放按钮图标
- pause.svg - 暂停按钮图标
- next.svg - 下一曲图标
- prev.svg - 上一曲图标
- volume.svg - 音量控制图标
- playlist.svg - 播放列表图标
封面图片 - covers/
默认封面图片和专辑封面资源。
包含文件
- default.png - 默认封面图片
- album-placeholder.png - 专辑占位图
- artist-placeholder.png - 艺术家占位图
- gradient-bg.jpg - 渐变背景图片
本页目录
PiMusic.php