我需要覆盖404代码以用于一个非常特定的场景,但它还没有完全工作。
我正在将日档案与rel=prev/next
, 链条应该从头到尾都完好无损。因此,每天至少要发布一篇帖子,最好是在午夜发布。这在编辑上不应该是个问题,即使是在一个新闻发布缓慢的日子里,预计也会有至少10篇帖子。
然而,事故可能会发生,比如停机或不必要的删除等等。即使在这种情况下,一旦有人注意到,也应该从出版端尽快修复(至少有一篇文章转发/回溯,以弥补当天的空白)。
不过,我不希望上一个/下一个链被打破,所以我认为这是最终的回退——理想情况下永远不会触发。
我在函数中添加了以下内容。php模板:
add_action( \'template_redirect\', \'empty_day\', 0 );
function empty_day() {
global $wp_query;
if ($wp_query->post_count == 0 && $wp_query->query[\'day\'] ) {
status_header( \'200\' );
$wp_query->is_404 = false;
$wp_query->is_day = true;
$wp_query->is_date = true;
$wp_query->is_archive = true;
}
}
它可以很好地将空页面重定向到存档模板,即上一个/下一个标签。
然而,函数在循环外完全停止工作(无返回),所以我不能get_the_time
也没有get_the_date
输出任何内容。
我已经尝试了建议的解决方案here 或here, 但他们仍然无法与template_redirect
使用筛选或重定向模板404_template
.
你知道如何让他们再次工作吗?