在文本框字段中输入的WordPress GET_OPTION和UPDATE_OPTION返回

时间:2015-08-25 作者:ccffxxfxd

我确实对我所做的插件设置有问题。

我创建了一个简单的文本框和一个提交按钮,并在管理页面设置中运行它。文本框和提交按钮的名称是myfirst\\u插件。php。现在我只想填写字段,当你刷新它时,它会显示你在姓名、电子邮件、评论等上输入的最后属性。这可能吗?如何使用get\\u选项和update\\u选项?

例如,我在名称字段中键入名称“Jayson Parker”,如果我要再次刷新它,即使我刷新它,Jayson Parker也会在名称字段中。

希望有人能

<?php
/*
Plugin Name: Wordpress Event Plugin
Plugin URI:
Description: plugin for wordpress
Version: 1.0
Author:
Author URI:[email protected]
License: GPLv2
*/

// Admin Page

    add_action(\'admin_menu\', \'myfirstplugin_admin_actions\');

    function myfirstplugin_admin_actions() {
        add_options_page(
            "Event Settings",
            "Event Settings",
            \'manage_options\',
            "wp_event_plugin",
            "myfirstplugin_admin_page"
        );


    }

     function myfirstplugin_admin_page() {
        include("myfirst_plugin.php");
    }



?>

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

处理表单字段与WordPress无关,在这里与主题无关,顺便说一句,我将回答如何使用options 桌子你在这里介绍的代码与你的问题无关。

好的,首先在提交后将表单数据放入字段可能会使您面临输入重复条目的风险。顺便说一句,您可以这样做(遵循内联注释):

<?php
if( isset($_POST[\'x_submit\']) ) {
    $data = array(
            \'name\'  => sanitize_text_field( $_POST[\'name\'] ),
            \'email\' => sanitize_email( $_POST[\'email\'] ),
            \'comment\'   => esc_textarea( $_POST[\'comment\'] )
        );
    //entering data into options table
    update_option( \'my_option_key\', $data );
}
?>

<?php
//having data from options table
$db_values = get_option( \'my_option_key\' );

//setting empty values to avoid \'undefined index\' warning
$name = \'\';
$email = \'\';
$comment = \'\';

//if there\'s any data in options table, updating our variables with relevant data
if( $db_values ) {
    $name = $db_values[\'name\'] ? $db_values[\'name\'] : \'\';
    $email = $db_values[\'email\'] ? $db_values[\'email\'] : \'\';
    $comment = $db_values[\'comment\'] ? $db_values[\'comment\'] : \'\';
}
?>
<form method="post">
    <label>Name <input type="text" name="name" value="<?php echo isset($_POST[\'name\']) ? $_POST[\'name\'] : $name; ?>"></label><br>
    <label>Email <input type="email" name="email" value="<?php echo isset($_POST[\'email\']) ? $_POST[\'email\'] : $email; ?>"></label><br>
    <label>Comment <textarea name="comment" cols="30" rows="10"><?php echo isset($_POST[\'comment\']) ? $_POST[\'comment\'] : $comment; ?></textarea></label>
    <input type="submit" name="x_submit" value="Submit">
</form>
P.S.: NOTHING IS TESTED 在这里,只需按照程序进行操作,并根据需要进行更改。重要的是,进行必要的逃生和消毒。