不要将表单发送到必须手动加载WordPress的自定义PHP脚本,而应该将from直接发送到WordPress页面。
你可以使用admin_post_{action} hook, 类似于admin-ajax.php works, 但用于处理GET和POST请求。
表格:
<form action="<?php echo admin_url( \'admin-post.php\' ); ?>" method="post">
  <input type="hidden" name="action" value="my_action">
  <input type="submit" value="Submit">
</form>
 以及行动:
add_action( \'admin_post_my_action\', \'cyb_my_action\' );
add_action( \'admin_post_nopriv_my_action\', \'cyb_my_action\' );
function cyb_my_action() {
   // Process your form here
}
 您也可以将表单发送到WordPress中的任何其他页面,并在中处理表单
init 动作钩(或任何其他你认为更适合你需要的动作,但是
init 通常是处理自定义表单的良好操作)。
例如,如果表单嵌入到任何类型的帖子(包括页面)中,则可以将表单发送到自身:
<form id="cyb-contact-form" action="<?php echo esc_url(get_the_permalink()); ?>" method="post">
</form>
 他们,你可以在
init 行动挂钩:
add_action( \'init\', \'cyb_process_my_form\' );
function cyb_process_my_form() {
   // Process your form here
}