>我创建了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的主页中?
请帮助我。谢谢。
代码的问题在于,您可能正在保存数据,但您没有读取保存的数据,并且您没有根据以前保存的内容更改表单中的数据。
下面的代码是从数据库中保存和读取注册变量的典型方法。
<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() 函数。