PHPでは、random.phpファイルと同じアクションを入力してデータを処理することができますが、Wordpressではカスタムテンプレートを使用して既存のページを使用してフォームを送信することができます。あるページにフォームを送信すると、ユーザーは入力されたすべての資格情報を使用したままWordPressで別のページにリダイレクトされますか。
<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
<input type="hidden" name="action" value="your_action_name">
あなたのフォームにこれらを追加してください。 admin-post.phpがあなたのフォームを処理する場所。その場合、あなたが提供するyour_action_nameの値に基づいて、アクションフックが関与します。たとえば、テーマのfunctions.php
やプラグインに次のようなフックを追加したとしましょう。
add_action( 'admin_post_nopriv_your_action_name', 'your_function_to_process_form' );
ログインしていないユーザーの場合
function your_function_to_process_form(){
// process your form here
}
と呼ばれます。そこからあなたのフォームを処理することができます。ログインしているユーザーのためにあなたはあなたの行動をadmin_post_your_action_name
からadmin_post_nopriv_your_action_name
に改名する必要があります。 admin_post_
またはadmin_post_nopriv_
がadmin-post.phpでdo_action
適切なアクションに利用可能であることを忘れないでください。 admin_post_nopriv_
またはadmin_post_
の最後に追加したものはすべてアクションフックを作成します。それはadd_action()
によって実装される必要があります。隠しアクションとしてcontactform
を渡すと、アクションフックはadmin_post_nopriv_contactform
またはadmin_post_contactform
、あるいはその両方になります。