保存并显示wordpress插件数据

时间:2015-03-11 16:27:53

标签: php wordpress plugins

我创建Wordpress插件并希望保存到wordpress_options表。 但是在我的保存功能中不会工作。

这是我的代码:

<?php 
/**
* Plugin Name: Social Media Plugin
* Plugin URI: http://fanjavaid.com/plugin
* Description: Plugin untuk kebutuhan data sosial media.
* Version: 1.0
* Author: Fandi Akhmad
* Author URI: http://fanjavaid.com
*/

function mp_admin() {
    if(isset($_POST['mp_web'])):
        update_option('mp_web', $_POST['mp_web']);
        echo '<div class="updated"><p><strong>Updated</strong>: Data berhasil diubah</p></div>';
    endif;
    $mp_web = get_option('mp_web');
?>

<div class="wrap">
    <?php    echo "<h2>" . __( 'Halaman Konfigurasi My Plugin', 'mp' ) . "</h2>"; ?>
    <?php echo "<p>Masukkan detail sosial media untuk website Indotechsci</p>"; ?>

    <form name="mp_form" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
        <input type="hidden" name="mp_hidden" value="Y">
        <p><?php _e("Twitter " ); ?><input type="text" name="mp_twt" value="" size="20" placeholder="username"></p>
        <p><?php _e("Facebook " ); ?><input type="text" name="mp_fb" value="" size="20" placeholder="username"></p>
        <p><?php _e("Youtube " ); ?><input type="text" name="mp_ytb" value="" size="20" placeholder="username"></p>
        <p class="submit">
        <input type="submit" name="Submit" class="button button-primary" value="<?php _e('Save Changes', 'mp' ) ?>" />
        </p>
    </form>
</div>

<?php } ?>

它不会保存。 我的代码可能有问题吗?如何将保存的上述信息调用到WordpresS的主页?

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

代码的问题在于您可能正在保存数据,但没有读取保存的数据,也没有根据先前保存的内容更改表单中的数据。

下面的代码是从数据库保存和读取注册变量的典型方法。

<form method="post" action="options.php">
        <?php settings_fields( 'FJE_Plugin_FrontPage_Settings_Group' ); ?>
        <?php do_settings_sections( 'FJE_Plugin_FrontPage_Settings_Group' ); ?>
        <table class="form-table">
            <tr valign="top">
                <th scope="row">Website name:</th>
                <td><input type="text" name="FJEPLG_option_Website_name" value="<?php echo esc_attr( get_option('FJEPLG_option_Website_name') ); ?>" /></td>
            </tr>
            <tr valign="top">
                <th scope="row">Show/Hide Website name:</th>
                <td>
                    <input name="FJEPLG_option_ShowWebsiteName" type="checkbox" value="Yes"  <?php if (esc_attr( get_option('FJEPLG_option_ShowWebsiteName'))==true ){echo "checked='checked'";}; ?> />
                    <label>Show the website name in header;</label>
                </td>
            </tr>
        </table>
        <?php submit_button(); ?>

您使用的变量名必须在register_setting()函数中注册。