我正在尝试在我的主题的function.php文件中设置 HTTP响应标题,我试图将过期时间设置为单个帖子页面的6小时和其他人的20分钟。
我需要检查当前访问的网址是否是一个帖子页面。为此我使用wordpress条件标签,但它们无法正常工作。
这是我的代码:
function add_custom_http_headers($headers) {
$headers['Cache-Control'] = 'public';
$now = time();
if(is_single())
$then = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 60*60*6);
else
$then = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 20*60);
header("Expires: $then");
header("Last-Modified: ".gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now));
return $headers;
}
add_filter('wp_headers', 'add_custom_http_headers');
似乎我们无法访问我尝试使用它们的条件标签。请帮我找到当前页面类型的解决方案,即它的帖子页面/主页/有/不使用functions.php中的条件标签或任何其他合适的代码点来实现此标题设置模块。
答案 0 :(得分:2)
您还可以在header.php文件中设置标题,如下所示:
$now = time();
if(is_single())
$then = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 60*60*6);
else
$then = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 20*60);
header("Expires: $then");
header("Last-Modified: ".gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now));
header("Cache-Control: public");
试试这个,我认为它应该有用。
答案 1 :(得分:0)
如果要查找当前页面类型,请使用get_post_type()
。函数is_single()
不用于检查帖子类型,它用于检查您在单个帖子页面上的天气。当你在一个帖子页面上时它返回true,否则返回false。