我想将默认的WordPress作者链接(即/author/user\\u nicename)更改为/author/user\\u id。
我发现这很容易做到,我通过两种方式做到了这一点:
1、我只是复制get_author_posts_url()
功能来自wp-includes/author-template.php
并在我的主题中重写:
function ji_get_user_url($author_id, $author_nicename = \'\') {
global $wp_rewrite;
$auth_ID = (int) $author_id;
$link = $wp_rewrite->get_author_permastruct();
if ( empty($link) ) {
$file = home_url( \'/\' );
$link = $file . \'?author=\' . $auth_ID;
}else {
if ( \'\' == $author_nicename ) {
$user = get_userdata($author_id);
if ( !empty($user->user_nicename) )
$author_nicename = $author_id;
}
$link = str_replace(\'%author%\', $author_id, $link);
$link = home_url( user_trailingslashit( $link ) );
}
$link = apply_filters( \'author_link\', $link, $author_id, $author_nicename );
return $link;
}
2。我使用了过滤器:
function chang_author_link($link,$author_id,$author_nicename){
$user_info = get_userdata(get_current_user_id());
$user_id= $user_info->ID;
$link = str_replace($author_nicename, $user_id, $link);
return $link;
}
add_filter(\'author_link\', \'chang_author_link\',10,3);
以上任何一种方法都可以成功地将默认作者链接更改为/author/user\\u id,但它们都返回了404未找到页面!
发生了什么事?