我使用wordpress,我試圖將usename var從www.mysite.com/username傳遞給wordpress頁面中的var。我有多個問題。我不知道如果重寫不起作用,wordpress頁面註釋掉我的PHP。有什麼建議麼?有誰知道如何做到這一點?WordPress的:用戶名推薦在url
.htaccess文件:
我使用wordpress,我試圖將usename var從www.mysite.com/username傳遞給wordpress頁面中的var。我有多個問題。我不知道如果重寫不起作用,wordpress頁面註釋掉我的PHP。有什麼建議麼?有誰知道如何做到這一點?WordPress的:用戶名推薦在url
.htaccess文件:
不能www.mysite.com/username的瓦爾傳遞到一個WordPress頁面中的無功,因爲這將意味着所有的鏈接會導致同一頁和var的用戶名,你會得到很多衝突和很多問題。
我可以在創建個人資料頁面上與我分享您的代碼。 EG:配置文件和有像漂亮的永久鏈接 www.mysite.com/profile/eek
這將訪問Wordpress頁面配置文件,我已經在我的主題中設置爲page-profile.php,並且下一個變量(例如: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%','([^&]+)');
然後從設置 - 更新固定鏈接>永久鏈接設置 - >保存。
,並在頁面-profile.php
要獲取當前用戶,我有這樣的片段:在這裏添加重寫規則使用WordPress
<?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;}
}
?>
更多細節:http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
此外,我正在使用一個很酷的插件來調試我的重寫,它是這樣的:http://wordpress.org/plugins/monkeyman-rewrite-analyzer/(是的,它已經2年了,但它仍然像魅力一樣工作)。
希望這有幫助!
感謝您的幫助! – mrhidiho
沒問題:)很高興幫助。不要忘記接受答案:) – Eek