You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中get_permalink()作为表单action属性失效问题

WordPress注册表单提交404问题排查与解决

核心问题分析

get_permalink('register') 仅接收页面ID、页面对象或文章对象作为参数,直接传入字符串'register'无法返回正确的页面链接——虽然该字符串作为超链接可能偶然生效,但表单提交时WordPress的路由解析会严格校验,最终导致404错误。

可行解决方法

方法1:直接提交到当前页面(推荐)

如果表单本身就在注册页面模板里,无需指定具体链接,直接用以下两种方式之一:

  • 获取当前页面的permalink:
<form action="<?php echo get_the_permalink(); ?>" method="post">
  • 留空action属性(浏览器默认提交到当前页面):
<form action="" method="post">

方法2:通过页面slug获取正确链接

如果需要明确指定注册页面,先通过slug获取页面ID,再传入get_permalink():

<?php
// 注意:如果页面slug是page-register,把'register'替换成'page-register'
$register_page = get_page_by_path('register');
$register_permalink = $register_page ? get_permalink($register_page->ID) : '';
?>
<form action="<?php echo $register_permalink; ?>" method="post">

方法3:刷新固定链接规则

  1. 进入WordPress后台「设置」→「固定链接」
  2. 切换到非「朴素」模式(比如「文章名称」)
  3. 点击「保存更改」——这会刷新WordPress的路由规则,解决多数路由解析异常导致的404

额外排查点

  • 确认page-register.php模板文件放在主题根目录,且注册页面已关联该模板
  • 临时禁用安全类、路由类插件,排查是否有插件拦截表单提交请求
  • 重启LocalWP站点,清除站点缓存,确保rewrite规则正确生成

内容的提问来源于stack exchange,提问作者Krisrant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:10:20