Wordpress:如何在php中根据时间隐藏页面

Wordpress:如何在php中根据时间隐藏页面,php,Php,我想在每天上午10点到晚上20点之间隐藏一些网页 我将下面的代码添加到function.php文件中 <?php if (date('H')>10 && date('H')<20{echo 'url page';} ?> 除了注释中提到的语法错误之外,我想您还需要检查它是否是您需要锁定的特定页面,这样您就不会对整个站点进行锁定。如果该页面是某个WordPress帖子,您可以通过帖子ID阻止访问,如下所示: 功能块accessfrompost($post

我想在每天上午10点到晚上20点之间隐藏一些网页

我将下面的代码添加到function.php文件中

<?php 
if (date('H')>10 && date('H')<20{echo 'url page';}
?>

除了注释中提到的语法错误之外,我想您还需要检查它是否是您需要锁定的特定页面,这样您就不会对整个站点进行锁定。如果该页面是某个WordPress帖子,您可以通过帖子ID阻止访问,如下所示:

功能块accessfrompost($post){
$post_id=$post->id;
$hours=intval(日期('H'));
如果($hours>=9&&$hours<20&&$post\u id==1123){
回声“请等一下……”;
exit;//需要退出,因此不执行进一步的代码。
}
}
添加_操作('the_post','blockAccessFromPost');
如果你不知道在哪里可以找到帖子/页面id,这里是


先前版本的答案是错误的,因为它无法立即访问post数据,WordPress没有初始化
u post
hook有助于在当前post数据刚刚加载时执行代码。

还是一样,我真的不知道,您的代码看起来很完美。当我使用它时,帖子在列表中消失,我可以看到wirtten“请稍候…1391”。但小部件页脚等消失。 我把下面的代码发回给你,以确保你能很好地使用它

function blockAccessFromPost($post) {
  $post_id = $post->ID;
  $hours = intval(date('H'));

  if ($hours >= 9 && $hours < 20 && $post_id === 1391) {
    echo 'Please wait...';
      echo $post->ID;
    exit; // exit is required so no further code is executed.
  }
return $post;}
add_action('the_post', 'blockAccessFromPost');
?>```
功能块accessfrompost($post){
$post_id=$post->id;
$hours=intval(日期('H'));
如果($hours>=9&&$hours<20&&$post\u id==1391){
回声“请等一下……”;
echo$post->ID;
exit;//需要退出,因此不执行进一步的代码。
}
返回$post;}
添加_操作('the_post','blockAccessFromPost');
?>```

您的
if
语句中缺少了一个
(在
之后,我使用此语句,(更改时间以进行尝试),网站正常,但帖子是可见的。
我知道了,我会在一分钟内给出更新的答案。现在试试看,AlessandroMake确保帖子id正确,并且服务器上的时间可能有问题(不同的时区?)。还要将此代码放在
functions.php
的开头,这样它就可以确保执行。如果这不起作用,请尝试
echo
函数
blockAccessFromPost()中的一些文本
以确保它被执行。在这个函数中,将
echo$post->ID;
与您试图阻止的post ID进行比较,可能不一样。为了让它工作,您仍然可以做很多事情。好吧,没有错误,但我想我只是没有正确理解。就我现在所知,您只看到了消息我们在这篇文章上进行了回音,但您希望整个页面不显示这篇文章的内容。您可以尝试在条件块中使用
$post->post_content='your message';
,只需删除
退出
回音
并将其放置在那里。这样,您就可以更改文章的不同属性以使其生效正确地看,我也认为在将来解决WordPress相关的问题对你会更有帮助。