我创建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的主页?
请帮帮我。谢谢。
答案 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()函数中注册。