如何精心输入一个 WordPress 简码表单($_POST 数组)?

How elaborate input of a WordPress shortcode form ($_POST array)?

我正在尝试创建自定义 WordPress 简码来生成表单。 我写了一个函数(称为 send_advice_request_form() ) returns HTML 形成代码,然后使用 ob_start() 和 return [=15 的回调=](),如何详细说明提交的表单数据?如果我不指定表单的任何 action 属性,post 数据将提交到哪里?

function send_advice_request_form_cb() {

    ob_start();

    echo send_advice_request_form();

    return ob_get_clean();

}
add_shortcode( 'dparequestform', 'send_advice_request_form_cb' );

function send_advice_request_form() { //return HTML form }

处理像您这样的自定义表单的最佳方法是将数据发送到 admin-post.php

使用此操作创建表单并隐藏此输入类型:

<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
  /*
     Your fields here.
  */

   <input type="hidden" name="action" value="your_action_name">
</form>

然后你将不得不用那些钩子处理数据

function send_advice_request_handler() {

    /*
       Do what you have to do.
    */
}

// Hook for everyone, no private
add_action( 'admin_post_nopriv_your_action_name', 'send_advice_request_handler' );

// Hook only for logged in users (verified by wordpress with is_user_logged_in())
add_action( 'admin_post_contact_form', 'send_advice_request_handler' );

希望它能帮到你,如果你需要更多帮助,请告诉我。