Wordpress 自定义注册 $_POST 不工作

Wordpress Custom Registration $_POST not working

所以,我在 Wordpress 的自定义主题中进行自定义注册,我已经使用相同的方法完成登录,并且工作正常,但由于某种原因注册不起作用,因为当请求在 /registration/ 上提交到 /registration/ $_POST 不工作。

我的代码

<?php
/* 
Template Name: Registration
*/
?>
<?php
global $wpdb, $user_ID;  
if ($_POST) {
    // GETTING VALUES

    // VALIDATION

    // Creating user if no errors
}

get_header();   
  
?>
 <form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
     // FORM STUFF
 </form>
?>

为了最小化示例,我删除了 $_POST 条件中的代码,因为它较新得到执行。 POST 请求被发送到正确的 URl,但是 returns 404。将 GET 请求发送到相同的 URL 会导致显示此页面,正如它应该的那样。 有什么想法吗?

这是因为$_POST本身的真值是假的,即使它里面有值。例如,如果您将执行以下操作

<?php var_dump( $_POST === true ); ?>

程序将return一个false

您应该改为测试以下命题:

<?php 
if( isset( $_POST ) ){
  // Your code here if form is submitted.
}
?>

我也注意到表单属性有一些错误, 应该是

 <form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>" >
    
 </form>

而不是

<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
     // FORM STUFF
 </form>