我根据我的评论对建议进行了测试,结果奏效了。
从中拆下支架(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 );