2013-07-06 63 views
1

我使用wordpress,我試圖將usename var從www.mysite.com/username傳遞給wordpress頁面中的var。我有多個問題。我不知道如果重寫不起作用,wordpress頁面註釋掉我的PHP。有什麼建議麼?有誰知道如何做到這一點?WordPress的:用戶名推薦在url

.htaccess文件:

​​

回答

2

不能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年了,但它仍然像魅力一樣工作)。

希望這有幫助!

+0

感謝您的幫助! – mrhidiho

+0

沒問題:)很高興幫助。不要忘記接受答案:) – Eek