wordpress 的里的所有注册用户都有一个专属的k">链接,称之为作者存档页链接,通常是这样的:

  1. // 未 url 重写
  2. https://www.xwenw.com/?author=1
  3.  
  4. // 已 url 重写
  5. https://www.xwenw.com/author/admin

这样就存在很大的安全隐患,这样就直接暴露了登录 WordPress 的用户名,特别是管理员的用户名!下面一个不错的方法的解决方法是将 WordPress 作者存档链接中的用户名改为昵称,方法如下:

1、修改用户名昵称,默认的昵称显示的是用户名,你可以修改成一个中文昵称,并设置公开显示显示为昵称。

WordPress 修改author作者存档链接中的个人主页用户名改为昵称 隐藏管理员用户名

2、在 functions.php 中加入以下代码:

  1. /**
  2. * WordPress 修改author作者存档链接中的个人主页用户名改为昵称 隐藏管理员用户名-(小闻网)
  3. * https://www.xwenw.com/wordpress-author.html
  4. */
  5. //使用昵称替换用户名,通过用户 ID 进行查询
  6. add_filter( ‘request’, ‘lxtx_wpdaxue_request’ );
  7. function lxtx_wpdaxue_request( $query_vars )
  8. {
  9. if ( array_key_exists( ‘author_name’, $query_vars ) ) {
  10. global $wpdb;
  11. $author_id = $wpdb->get_var( $wpdb->prepare( “SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key=’nickname’ AND meta_value = %s”, urldecode( $query_vars[‘author_name’] ) ) );
  12. if ( $author_id ) {
  13. $query_vars[‘author’] = $author_id;
  14. unset( $query_vars[‘author_name’] );
  15. }
  16. }
  17. return $query_vars;
  18. }
  19.  
  20. //使用昵称替换链接中的用户名
  21. add_filter( ‘author_link’, ‘lxtx_wpdaxue_author_link’, 10, 3 );
  22. function lxtx_wpdaxue_author_link( $link, $author_id, $author_nicename )
  23. {
  24. $author_nickname = get_user_meta( $author_id, ‘nickname’, true );
  25. if ( $author_nickname ) {
  26. $link = str_replace( $author_nicename, $author_nickname, $link );
  27. }
  28. return $link;
  29. }

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。