如何精心输入一个 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' );
希望它能帮到你,如果你需要更多帮助,请告诉我。
我正在尝试创建自定义 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' );
希望它能帮到你,如果你需要更多帮助,请告诉我。