为了避免出现404,我们需要修改作者存档页的url重写规则。
/** * 替换作者的存档页的用户名,防止被其他用途 * 作者存档页链接有2个查询变量, * 一个是author(作者用户id),用于未url重写 * 另一个是author_name(作者用户名),用于url重写 * 此处做的是,在url重写之后,把author_name替换为author * @version 1.0 * @since yundanran-3 beta 2 * 2013年10月8日23:19:13 * @link https://www.wpdaxue.com/use-nickname-for-author-slug.html */add_filter( 'request', 'yundanran_author_link_request' );function yundanran_author_link_request( $query_vars ) {if ( array_key_exists( 'author_name', $query_vars ) ) {global $wpdb; $author_id=$query_vars['author_name'];if ( $author_id ) { $query_vars['author'] = $author_id; unset( $query_vars['author_name'] ); }}return $query_vars;}
很巧合的是,作者存档页的查询变量有2个,之前说过,1个是url未重写的用户id(author
),另一个是url已重写的用户名(author_name
),而现在直接传递过来了用户id,只需要把参数名称author_name
修改为author
即可。
再次打开刚才的链接(http://qianduanblog.com/author/1),出现了正确页面。而如果打开原始的链接(http://qianduanblog.com/author/admin)就会出现404页面了,说明我们的修改正确了。
Tag:
查询