如何在不从/404重定向的情况下使用WordPress中404页面的块编辑器



我有一个WordPress网站和一个自定义主题,当然还有一个404.php文件。我遵循了这个神奇的指南,让404页面模板可以用块编辑器编辑。

当我转到/404(或者任何无效链接(时,404页面上的组件都会正确显示,但是,当转到/404时,用户会被重定向到/404-2这是我想要修复的行为。当用户转到/abc(无效页面(时,显示404,并且他们没有被重定向并且仍然在/abc上(这是预期的(。

我在WP中检查了页面,URL slug被设置为/404-2,并试图将其更改为404,只是默认返回404。这似乎是由于404是一个数字和默认的WP行为。但这只是告诉我为什么会出现问题;我不知道如何覆盖或纠正这种行为。提前谢谢。

通过挂接do_redirect_guess_404_permalink修复

请参阅https://developer.wordpress.org/reference/hooks/do_redirect_guess_404_permalink/

<?php
function stop_redirect_guess() {
return false;
}
add_filter( 'do_redirect_guess_404_permalink', 'stop_redirect_guess');
?>

正如您所发现的,页面标题"404〃;(或任何数字标题(将总是重写为";404-2";,这样可以确保标题是不同的/永远不会与数字帖子/页面id混淆。

一个简单的解决方案是将页面重命名为"0";404页";并将php函数更新为CCD_ 9。这将为您的页面提供更SEO友好的/404-pageurl,而不需要尝试更改.htaccess文件的永久链接/重写。

如果使用WordPress 5.9或更高版本,可以考虑将自定义主题迁移到块主题。这将使您能够创建一个真正的";404〃;使用块编辑器的页面模板,该块编辑器可以通过Site Editor > Templates进行编辑。网站编辑器使您能够添加新模板,保存和导出它们,以便为自定义主题轻松创建自己的模板。从《二十二》这样的基本主题开始,是了解可能发生的事情的好方法。这与创建";经典的";基于php的主题;尽管块模板和网站编辑器的优势对未来验证您的主题有很大的好处。

最新更新