我在@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');
來源
2013-03-18 22:44:41
Pat
除了重構核心WordPress文件之外,還有更好的解決方案可以幫助您完成任務。現在,當你更新你的WP時,你將不得不重新創建你的文件 - 或者將來會有一個恐龍版本的WP。 – 2013-03-19 05:00:25
如果你有更好的方法,我會全力以赴。這是我發現這不僅是像Buddypress這樣的沉重插件,還是像Wordpress用戶那樣擁有太多功能的插件。此外,升級後,因爲這些東西都在初始化階段,下次有人訪問該站點時不會重新初始化嗎? – Pat 2013-03-19 12:09:03