您不能将 www.mysite.com/username 的 var 传递给 WordPress 页面中的 var,因为这意味着所有链接都将指向同一个页面,而与用户名相关的 var 会产生很多冲突和很多问题。
我可以在创建个人资料页面时与您分享我的代码。EG:个人资料并拥有漂亮的永久链接,例如 www.mysite.com/profile/eek
这将访问我在主题中设置为 page-profile.php 的 Wordpress 页面配置文件,并将下一个变量(例如:Eek)放入一个变量中,在我的示例中它将是一个 $who 变量。
将此添加到functions.php
add_filter( 'page_rewrite_rules', 'profile_page_rewrite_rules' );
function profile_page_rewrite_rules( $rewrite_rules )
{
end( $rewrite_rules );
$last_pattern = key( $rewrite_rules );
$last_replacement = array_pop( $rewrite_rules );
$rewrite_rules += array(
'(.+?)/([^/]+)/?$' => 'index.php?pagename=$matches[1]&who=$matches[2]',
$last_pattern => $last_replacement,
);
return $rewrite_rules;
}
add_rewrite_tag('%who%','([^&]+)');
然后从“设置”->“永久链接设置”->“保存”更新永久链接。
并在 page-profile.php
为了获取当前用户,我有这个片段:
<?php $who = (get_query_var('who')) ? get_query_var('who') : 0;
if($who){$user = get_user_by('login', $who);}
else{
if( is_user_logged_in() ){
$user = wp_get_current_user();
}else{$user = 0;}
}
?>
在此处向 WordPress 添加重写规则的更多详细信息:http: //codex.wordpress.org/Rewrite_API/add_rewrite_rule
另外,我正在使用一个很酷的插件来调试我的重写,就是这个:http ://wordpress.org/plugins/monkeyman-rewrite-analyzer/ (是的,它已经 2 岁了,但它仍然像魅力一样工作)。
希望这有帮助!