我从这里找到的@bybloggers 答案中找到了答案。https://wordpress.stackexchange.com/a/58793/12920
我稍微修改了他的代码以适应我的需要,但这是对我有用的代码,正是我正在寻找的:
// Create the query var so that WP catches the custom /member/username url
function userpage_rewrite_add_var( $vars ) {
$vars[] = 'member';
return $vars;
}
add_filter( 'query_vars', 'userpage_rewrite_add_var' );
// Create the rewrites
function userpage_rewrite_rule() {
add_rewrite_tag( '%member%', '([^&]+)' );
add_rewrite_rule(
'^member/([^/]*)/?',
'index.php?member=$matches[1]',
'top'
);
}
add_action('init','userpage_rewrite_rule');
// Catch the URL and redirect it to a template file
function userpage_rewrite_catch() {
global $wp_query;
if ( array_key_exists( 'member', $wp_query->query_vars ) ) {
include (TEMPLATEPATH . '/user-profile.php');
exit;
}
}
add_action( 'template_redirect', 'userpage_rewrite_catch' );
在我的functions.php
文件中之后,我不得不重新保存我的永久链接。
有时重新保存永久链接并不能 100% 完成工作,浏览 www.mysite.com/member/username 会出现 404,因此我不得不手动刷新规则,将其放入functions.php
我的网站并加载我的网站一次。然后删除它,这样我就不会在每次站点加载时都运行它,因为这是不必要的开销。
// Code needed to finish the member page setup
function memberpage_rewrite() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init','author_rewrite');