如何在WordPress页面设置YouTube视频仅在7-8点播放,其余时间禁用?
WordPress实现YouTube视频每日定时播放(仅7:00-8:00可播放)
下面提供两种实用的实现方案,分别对应精准控制和灵活场景:
方案一:服务器端PHP判断(精准控制,推荐)
通过WordPress短代码结合PHP读取服务器时间,避免用户篡改本地时间绕过限制,适合需要严格管控的场景。
添加短代码函数
打开主题目录下的functions.php文件,插入以下代码:function timed_youtube_video() { // 获取服务器当前小时(24小时制,依赖WordPress时区设置) $current_hour = (int)date('H'); // 定义可播放时间段 $play_start = 7; $play_end = 8; if ($current_hour >= $play_start && $current_hour < $play_end) { // 替换为你的YouTube视频ID,可自行调整iframe尺寸和权限 return '<iframe width="560" height="315" src="https://www.youtube.com/embed/你的视频ID" title="定时播放视频" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'; } else { // 非播放时段的提示内容,可自定义样式 return '<div style="width:560px;height:315px;background:#f5f5f5;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;"> <span style="font-size:18px;color:#333;">视频仅在每日7:00-8:00开放播放</span> <span style="font-size:14px;color:#666;">请在对应时间段访问观看</span> </div>'; } } add_shortcode('timed_youtube', 'timed_youtube_video');使用短代码
在需要添加视频的WordPress页面/文章编辑器中,插入短代码[timed_youtube]即可。关键注意点
- 务必确保WordPress后台「设置→常规」中的时区设置正确,否则时间判断会出现偏差。
- 可根据需求调整iframe的尺寸、视频权限参数(比如去掉
autoplay避免自动播放)。
方案二:客户端JavaScript控制(基于本地时间)
如果逻辑允许基于用户本地时间判断,可使用前端JS实现,但需注意用户可通过修改本地时间绕过限制,适合非严格控制场景。
直接在页面的「自定义HTML」块中插入以下代码:
<div id="youtube-player-wrapper"> <!-- 默认显示非播放状态提示 --> <div style="width:560px;height:315px;background:#f5f5f5;border-radius:8px;display:flex;align-items:center;justify-content:center;"> <p style="margin:0;color:#333;">视频仅在每日7:00-8:00开放播放</p> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { const wrapper = document.getElementById('youtube-player-wrapper'); const now = new Date(); const currentHour = now.getHours(); // 判断是否在播放时段内 if (currentHour >=7 && currentHour <8) { // 创建YouTube嵌入iframe const iframe = document.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = 'https://www.youtube.com/embed/你的视频ID'; iframe.title = '定时播放视频'; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; // 替换提示内容为视频播放器 wrapper.innerHTML = ''; wrapper.appendChild(iframe); } }); </script>
内容的提问来源于stack exchange,提问作者Rahul Kashyap
相关产品推荐
相关产品推荐

