首页 > CMS > Wordpress > 正文

将WordPress作者存档链接中的用户名改为昵称

2024-09-07 00:50:36
字体:
来源:转载
供稿:网友

默认情况下,修改固定链接为非默认带?的样式以后,作者存档的链接一般为 http://域名/author/用户名,这样就直接暴露了登录WordPress的用户名,存在安全隐患,一个不错的解决方法是将WordPress作者存档链接中的用户名改为昵称.

将下面的代码添加到当前主题的 functions.php 中:

  1. //使用昵称替换用户名,通过用户ID进行查询 
  2. add_filter( 'request''wpdaxue_request' ); 
  3. function wpdaxue_request( $query_vars ) 
  4.     if ( array_key_exists'author_name'$query_vars ) ) { 
  5.         global $wpdb
  6.         $author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s"$query_vars['author_name'] ) ); 
  7.         if ( $author_id ) { 
  8.             $query_vars['author'] = $author_id
  9.             unset( $query_vars['author_name'] );     
  10.         } 
  11.     } 
  12.     return $query_vars
  13.  
  14. //使用昵称替换链接中的用户名 
  15. add_filter( 'author_link''wpdaxue_author_link', 10, 3 ); 
  16. function wpdaxue_author_link( $link$author_id$author_nicename ) 
  17.     $author_nickname = get_user_meta( $author_id'nickname', true ); 
  18.     if ( $author_nickname ) { 
  19.         $link = str_replace$author_nicename$author_nickname$link ); 
  20.     } 
  21.     return $link

接着我们在个人资料中修改昵称为其他名称,如下图,用户 demo 的昵称改为了 changmeng,这样一来,作者存档的链接就自动由 http://域名/author/demo   变成了  http://域名/author/changmeng

此外,记得将“公开显示为”设置为非用户名,这样就OK啦.

注意:昵称不要包含空格,同时不建议使用中文,如果是多用户博客,可能会存在昵称相同的情况,这时候只会显示ID较早的用户(解决思路是修改个人资料时,如果使用了相同昵称,进行提示,但是倡萌还不知具体如何实现,如果有朋友知道,希望告知)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表