代码仅在特定时间段内工作

时间:2013-04-27 作者:Martin Horvath

我有我自己风格的代码。css

iframe[src*="http://www.youtube.com/"]
{width:480px !important; height:305px !important;padding-top: 20px;display:none}
正如你所见,这使得youtube视频无法显示。但我想在某个时间段(例如:从凌晨2点到下午2点)显示视频。怎么做?

我有一个理论,但我不擅长编码,所以我自己也做不到

<this code work in some time period>
iframe[src*="http://www.youtube.com/"]
{width:480px !important; height:305px !important;padding-top: 20px;display:none}
</end of code>

<this code work in some time period>
iframe[src*="http://www.youtube.com/"]
{width:480px !important; height:305px !important;padding-top: 20px;}
<end of code>
有人能帮我吗?非常感谢!:)

3 个回复
SO网友:fuxia

您可以筛选body_class 并添加一个取决于时间的类:

add_filter( \'body_class\', \'time_body_classes\' );

function time_body_classes( $classes )
{
    $classes[] = \'time-\' . date( \'a\' ); // time-am or time-pm
    $classes[] = \'time-\' . date( \'H\' ); // time-02 or time-17

    return $classes;
}
然后可以使CSS选择器更具体:

.time-am iframe {
}
.time-02 iframe,
.time-03 iframe,
.time-04 iframe,
.time-05 iframe 
{
}
请注意,如果使用缓存插件,body类不会更改。

SO网友:tfrommen

你是说server timeuser time?
在第一种情况下,只需使用toscho\'s answer, 而在第二种情况下,您可能需要/必须使用JavaScript来确定时间并据此采取行动。例如:

jQuery(document).ready(function($) {
    // Add body class depending on current time
    var currentTime = new Date().getHours();
    $(\'body\').addClass(\'time-\'+currentTime);
});
要么将上述代码放入一个现有(并排队)JS文件中,要么创建一个新的JS文件,将代码放入其中并排队。

// EDIT
如果要删除/隐藏某些内容,也可以使用JavaScript执行此操作:

jQuery(document).ready(function($) {
    // Hide element depending on current time
    var currentTime = new Date().getHours();
    if (6 < currentTime && currentTime < 20)
        $(\'iframe.night-only\').remove(); // or hide();
});

SO网友:s_ha_dum

无论CSS是通过PHP还是Javascript添加的,用CSS隐藏视频都会有问题。

无论如何,视频都会加载到页面上,至少预览会加载。如果您通过HttpFox或类似工具观看请求,您可以看到youtube上的请求。com(例如),即使页面上只有一个视频可见

只需在浏览器中禁用Javascript,就可以轻松绕过Javascript强加的解决方案。

我的建议是使用一个短代码来控制内容的显示。

function time_restricted_output($atts, $content) {
  $hour = date(\'H\',current_time(\'timestamp\'));
  $start = (!empty($atts[\'start\'])) ? $atts[\'start\'] : 0;
  $end = (!empty($atts[\'end\'])) ? $atts[\'end\'] - 1 : 23;
  if ($hour >= $start && $hour <= $end) {
    return \'<p>Awesome Content: "\'.$content.\'" for between the hours of \'.$start.\' and \'.($end + 1).\' each day.</p>\';
  }
}
add_shortcode(\'timelc\',\'time_restricted_output\');
然后在您的帖子中使用[timelc start="00" end="12"]<content><[/timelc]

可以很容易地修改短代码以创建iframe 因此,您需要做的就是传递URL。

这将根据服务器时间控制内容。如果需要用户的机器时间,除了Javascript之外,没有太多选项。

结束

相关推荐

将自定义CSS类传递给ADD_MENU_PAGE

我的主题当前使用add\\u menu\\u page(),以便在左侧管理菜单上显示主题选项部分。我希望能够将父css类附加到主菜单项,以便有选择地显示/隐藏高级用户的菜单。我在法典中没有看到这方面的记录,所以我想知道是否有一个变通方法或未记录的功能,我可以利用。非常感谢您的帮助。基本思想是我有一个主菜单项和大约8个子菜单项。当前,所有菜单项都显示在菜单中。我想使用自定义css切换子菜单项的可见性,但是,目前没有自定义id或类可用于设置菜单的目标。