我已经从WP admin中删除了编辑配置文件页面,因为我不希望用户能够编辑他们的详细信息,因为这是一个封闭的intranet,他们的详细信息来自广告。
然而,我确实希望他们能够发布自己的用户描述(传记)。因此,我开始添加一个新的管理页面,让用户能够做到这一点:
add_action(\'admin_menu\', \'sc_stace_user_bio_page\');
function sc_stace_user_bio_page() {
$page = add_menu_page( "Your Biography", "Biography", "read", "user-bio", "sc_stace_user_bio_page_content", "", 50 );
}
function sc_stace_user_bio_page_content() {
global $current_user;
get_currentuserinfo();
?>
<div class="wrap">
<h2>Your Biography</h2>
<form action="options.php" method="post">
<textarea rows="10" cols="100" name="user_description"><?php echo esc_textarea($current_user->user_description); ?></textarea>
<?php submit_button( "Save", "primary", "submit", true ); ?>
</form>
</div>
<?php
}
?>
据我所知,我无法在此使用设置API,因为此信息需要保存到登录的用户元中,而不是保存到选项表中。因此,现在我陷入了困境,因为我不知道表单应该保存到哪里,也不知道如何以正确的方式检查表单提交。
那么我应该在哪里提交表格呢?如果有的话,我应该在表格中填写什么?我需要连接什么来检查表单提交,以及是否发送了正确的数据并保存到用户的元数据?
最合适的回答,由SO网友:Johannes Pille 整理而成
update_user_meta($current_user->ID, \'description\', $_POST[\'user_description\']);
在表单处理功能中将保存bio。
我会将表单操作保持在同一个管理页面上。至于数据验证,我不知道首先要验证什么。它只是一个字符串,而不是需要根据特定格式检查的电子邮件、地址等。