好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

//使用昵称替换用户名,通过用户ID进行查询   add_filter(  'request' ,  'wpdaxue_request'  );  function  wpdaxue_request(  $query_vars  )  {       if  (  array_key_exists (  'author_name' ,  $query_vars  ) ) {           global   $wpdb ;           $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' ] ) );           if  (  $author_id  ) {               $query_vars [ 'author' ] =  $author_id ;              unset(  $query_vars [ 'author_name' ] );              }      }       return   $query_vars ;  }    //使用昵称替换链接中的用户名   add_filter(  'author_link' ,  'wpdaxue_author_link' , 10, 3 );  function  wpdaxue_author_link(  $link ,  $author_id ,  $author_nicename  )  {       $author_nickname  = get_user_meta(  $author_id ,  'nickname' , true );       if  (  $author_nickname  ) {           $link  =  str_replace (  $author_nicename ,  $author_nickname ,  $link  );      }       return   $link ;  } 

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

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

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

查看更多关于将WordPress作者存档链接中的用户名改为昵称 - W的详细内容...

  阅读:79次