質問: $obj_wp->query_vars["pagename"]; switch($page_name) { case "form": add_filter('the_content', 'my_render_form'); break; case "form-process": add_filter('the_content', 'my_process_form'); break; } } } add_action('wp', 'check_current_page'); // function to render the form function my_render_form($page_markup) { $page_markup .= '<form method="post" action="/form-process"> <input type="text" name="some_input_field" /> <input type="submit" value="submit" /> </form>'; return $page_markup; } // function to process the form function my_process_form($page_markup) { if($_post) { // do the form processing. this would involve many possible returns, // but i've just included one to simplify thigns. $page_markup .= 'your form has been processed.'; } return $page_markup; } ?>
回答: これは簡単なフィードバックです。ショートコードを使用してフォームをコンテンツに挿入します。それらはかなり柔軟です。そして、処理されたフォームが別のurlを持つ必要がある場合は、/ form/processed /のような書き換えエンドポイントを追加することができます。そして送信後に確認できます。それはおそらくもっとモジュラーです。結局、ショートコードコールバックの中で何かを扱うことができるので、the_contentフィルタを扱うことができなくなります。それは大まかな提案だけですが、おそらくあなたのために仕事をします。