我根据我的评论对建议进行了测试,结果奏效了。
从中拆下支架(myaccount) 和更改$matches[2] 在URL中myaccount:
function wpse_287203_rewrite_rule() {
add_rewrite_rule( \'^user/(\\d+)/myaccount/?\', \'index.php?pagename=myaccount&user_id=$matches[1]\', \'top\' );
}
add_action( \'init\', \'wpse_287203_rewrite_rule\' );
(myaccount) 将无法匹配整个世界。这有点复杂。看见
this Stack Overflow answer 了解如何匹配精确的单词。但是,我们不需要在这里这样做,因为我们可以手动将单词放入
add_rewrite_rule().
此外,这不是问题的一部分,但这是接下来的问题。访问user_id, 您需要将其添加到有效查询变量列表中:
function wpse_287203_query_vars( $vars ) {
$vars[] = \'user_id\';
return $vars;
}
add_filter( \'query_vars\', \'wpse_287203_query_vars\' );
现在,您可以使用
get_query_var():
$user_id = get_query_var( \'user_id\' );
$userdata = get_userdata( $user_id );