提交表格的推荐做法

时间:2014-04-17 作者:yeahman

我想在页面上创建表单,但如何处理表单提交。

我应该实现哪个钩子来处理我的提交?可能最脏的是在主题本身做,但我不想这样做。。。可能不是正确的方式

2 个回复
最合适的回答,由SO网友:rozklad 整理而成

我会在插件文件中使用init hook来注册自定义函数

add_action( \'init\', \'custom_proccess_form\' );
然后在自定义函数中检查表单输入,您提到过创建帖子

function custom_proccess_form() {

    $wp_error = true;   // report errors or not
    $nonce = $_POST[\'_wpnonce\'];

    if( isset($_POST[\'insert_post\']) && wp_verify_nonce($nonce, \'my-nonce-name\') ) {

        $post = array(
            \'post_title\' => $_POST[\'new_post_title\'],
            \'post_content\' => $_POST[\'new_post_content\'],
            );

        // form actions
        $post_id = wp_insert_post( $post, $wp_error );

        // now you can use $post_id within add_post_meta or update_post_meta

        // redirect at the end to some url
        wp_redirect(\'/?success=true\');
    }
}
表单本身可以如下所示

<form method="POST">
    <?php wp_nonce_field(\'my-nonce-name\'); ?>
    <input type="text" name="new_post_title">
    <textarea name="new_post_content"></textarea>
    <input type="hidden" name="insert_post" value="1">
    <button type="submit">Submit!</button>
</form>

SO网友:user3548500

创建了一个插件来解决您提交表单时遇到的问题。10个wordpress网站中有8个以上的插件是免费使用的contact-form-7插件。这些会让事情变得简单

结束

相关推荐

Print Cforms form as pdf

我使用创建了一个表单Cforms from Delicious. 客户要求我提供将此表单打印为pdf的选项。我尝试了一些插件,比如Print Friendly and PDF Button 这样就可以添加pdf或打印按钮,但该按钮随后会添加到所有页面,并且大多数情况下表单不会显示在打印预览/打印输出中。有人知道我怎么做吗?