the_modified_date()
是必须在循环中使用的模板标记,这就是为什么它不适合您。
WordPress提供了一个操作和过滤器挂钩,以包括或修改HTTP标头:
但它不适用于此目的。例如,下一个代码不起作用:
add_action( \'send_headers\', \'cyb_add_last_modified_header\' );
function cyb_add_last_modified_header() {
//Check if we are in a single post of any type (archive pages has not modified date)
if( is_singular() ) {
$post_id = get_queried_object_id();
if( $post_id ) {
header("Last-Modified: " . get_the_modified_time("D, d M Y H:i:s", $post_id) );
}
}
}
Why?
此时未生成主wp查询,也未在
wp_headers
滤器所以
is_singular()
退货
false
,
get_queried_object_id()
退货
NULL
而且无法获得当前帖子的修改时间。
一个可行的解决方案是template_redirect
行动挂钩,如Otto在this question (测试和工作):
add_action(\'template_redirect\', \'cyb_add_last_modified_header\');
function cyb_add_last_modified_header($headers) {
//Check if we are in a single post of any type (archive pages has not modified date)
if( is_singular() ) {
$post_id = get_queried_object_id();
if( $post_id ) {
header("Last-Modified: " . get_the_modified_time("D, d M Y H:i:s", $post_id) );
}
}
}