将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的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did8810