[英]How can I use the block editor for a 404 page in WordPress without redirecting from /404
我有一个 WordPress 网站和一个自定义主题,当然还有一个404.php
文件。 我遵循了这个惊人的指南,让 404 页面模板可以使用块编辑器进行编辑。
当我 go 到/404
(或就此而言,任何无效链接)时,我在 404 页面上的组件显示正确,但是,当转到/404
时,用户被重定向到/404-2
这是我想要的行为使固定。 当用户转到/abc
(无效页面)时,会显示 404 并且它们没有被重定向并且仍然在/abc
上(这是预期的)。
我检查了 WP 中的页面,并且 URL slug 设置为/404-2
并尝试将其更改为 404 只是默认返回 404。这似乎是由于404 是一个数字和默认的 WP 行为。 但这只是告诉我为什么会出现问题; 我不知道如何覆盖或纠正这种行为。 提前致谢。
正如您所发现的,页面标题“404”(或任何数字标题)将始终被重写为“404-2”,这确保标题是不同的/永远不会与数字帖子/页面 ID 混淆。
一个简单的解决方案是将页面重命名为“404 page”并将 php function 更新为get_page_by_title( '404 page' )
。 这将使您的页面对/404-page
的 url 更加 SEO 友好,并且不需要尝试更改.htaccess文件的永久链接/重写。
如果使用 WordPress 5.9 或更高版本,可以考虑将自定义主题迁移到块主题。 这将使您能够使用可以通过Site Editor > Templates
编辑的块编辑器创建真正的“404”页面模板。 站点编辑器使您能够添加新模板、保存和导出它们,以便为您的自定义主题轻松创建您自己的模板。 从像二十二十二这样的基本主题开始是了解可能的好方法。 这与创建“经典”基于 php 的主题非常不同; 尽管块模板和站点编辑器的优势对于将来验证您的主题是一个很大的好处。
通过挂钩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');
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.