我已经在后端扩展了用户配置文件页面,以便每个用户配置文件都有几个额外的自定义字段,用于存储数据,如最喜爱的电影、生日等。创建一个约会网站,这就是为什么需要更多的领域。拥有适当代码的人可以使用输入代码在前端查看这些配置文件,输入代码基本上是一些随机代码,最后加上用户ID作为数字。使用PHP子字符串获取用户ID并授予访问权限,请参见代码:
if(empty($_REQUEST[\'enterCodeId\'])){
echo "<script>
location.replace(\'".$_SERVER[\'HTTP_REFERER\']."\');
</script>";
}else{
$getId=substr($_REQUEST[\'enterCodeId\'], 4, 10);
$querystr ="SELECT ID FROM wp_prefixcode_users WHERE ID=\'".$getId."\'";
$querystrChecking = mysql_query($querystr);
if(mysql_num_rows($querystrChecking)<=0){
echo "<script>
location.replace(\'".$_SERVER[\'HTTP_REFERER\']."\');
</script>";
}
$uploads = wp_upload_dir();
//
}
此设置不理想,因为a:无法从配置文件页面添加代码,可以通过额外的
get_the_author_meta()
, 但是我需要一种更好的方法来生成密码,但也因为b:密码总是以相同的用户ID号结尾。
如何为用户提供从仪表板>用户>用户配置文件自动生成访问密码的选项,以便用户可以重新生成新的访问密钥?这是必需的,以便可以撤销授予其他用户的访问权限。我需要一个PHP函数来生成一个新键,并将其存储为数据库中的author\\u元字段。
Solution
多亏了Toscho和另一个开发人员,我得到了这段代码来加载它。在函数中。我添加的php:
add_action( \'init\', \'accesskeygen_func\' );
function accesskeygen_func() {
$phpfile = explode(\'/\', $_SERVER[\'PHP_SELF\']);
$phpfile = $phpfile[count($phpfile)-1];
if (($phpfile==\'profile.php\') && isset($_GET[\'accesskeygen\'])) {
echo wp_generate_password();
exit;
}}
以及
<!-- begin access key -->
<tr>
<th><label for="myaccesskey"><?php _e("Access Key"); ?></label></th>
<td>
<input type="text" name="myaccesskey" id="myaccesskey" value="<?php echo esc_attr( get_the_author_meta( \'myaccesskey\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">
<input type="button" class="button-secondary" id="myaccesskeygen" value="Generate Access Key"/>
<?php _e("Please click the button generate access key."); ?>
</span>
</td>
</tr>
<!-- end access key -->