我想到了一个沙箱入门插件(下面的已消毒代码)来为用户保存网址。所以在管理部分有一个按钮。当用户单击它时,将打开一个新窗口,将它们带到已配置的URL。我知道很简单。
我有插件表单和后处理功能。我现在遇到的是使用wp_options表的困惑。
具体如何将每个USER设置保存到wp_options表中。
我可以想到三种方式。
在配置页面上添加包含用户ID的第三个隐藏字段。然后输入wp_options。回想起来,我会在wp_options中找到与userid匹配的条目。我不确定这里是否wp_options罐头功能会覆盖....换句话说,如果用户A保存www.google.com然后10分钟后用户B保存www.bing.com罐头wp_options罐头功能覆盖用户一个?我还可以指定召回的细节吗?
第二种是将用户设置中的设置保存....作为一种用户设置......但要做到这一点,我是不是踩着约定而进一步冒险升级/兼容性?
自定义表在我看来是方便的......但是你们知道得比我多得多,所以我想得到你的意见。
这是代码......再次消毒,所以有些事情可能没有意义,因为我已经为操场目的改变了它们。
function register_setting()
{
register_setting( 'Options-group', 'OptionsA_options', 'options_callback');
register_setting( 'Options-group', 'url' );
}
function options_callback()
{
alert('Options Callback');
}
add_action( 'admin_init', 'register_setting' );
function my_plugin_menu()
{
add_options_page( 'Test Options', 'Button Click', 'activate_plugins', 'UNIque Name', 'some_options' );
}
add_action( 'admin_menu', 'my_plugin_menu' );
function clicky_options()
{
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
?>
<div class="wrap">
<h2>Config</h2>
<form method="post" action="somepage_options.php">
<?php settings_fields( 'Options-group' );?>
<?php do_settings_sections( 'Options-group' );?>
<table class="form-table">
<tr valign="top">
<th scope="row">Site Url (including http:// OR https:// )</th>
<td><input type="text" name="url" value="<?php echo esc_attr( get_option('url') ); ?>" /></td>
</tr>
</table>
<?php submit_button('Sign On');?>
</form>
</div>
<?php
}
表格邮寄处理:
$url = $_POST['url'];
$FullUrl = $url."/"
header("Location: $FullUrl", true, 301);
exit();
答案 0 :(得分:2)
所以基本上,你试图将用户输入保存在&#39; wp_options&#39;使用&#39; register_settings&#39;表。而不是你可以简单地保存表单并将输入添加到usermeta来处理每个用户的设置 -
$ user_id = get_current_user_id();
update_user_meta($ user_id,&#39; input_url&#39;,$ _POST [&#39; url&#39;]);
您可以使用&#39; update_user_option&#39;如果处理多站点。