2010-03-25 87 views
0

這裏已經提到了這個問題(一年前),但顯然沒有回答,而且WordPress一直在不斷髮展,所以現在可能是一個很好的解決方案。我想通過url將變量傳遞給一個WordPress頁面(類似於CodeIgniter的uri幫助程序段)。如何將URL變量傳遞到WordPress頁面

目前我能做到這一點...

我的個人資料頁是: http://website.com/profile

我可以傳遞這樣一個變量: http://website.com/profile?username=johndoe

我要傳遞的變量在這樣: http://website.com/profile/johndoehttp://website.com/profile/username/johndoe

必須有某種輔助功能,對吧?

回答

0

假設你的WP安裝使用永久鏈接,這樣的.htaccess功能,你應該把你的.htaccess的頂層文件如下:

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^profile/(.*)$ /profile?username=$1 [NC] 
+0

404錯誤,如果我嘗試website.com/profile/johndoe – 2010-03-26 00:04:11

0

追加到根文件夾的東西.htaccess文件像

RewriteRule ^profile/?([_0-9a-z-]+)?/?$ http://website.com/profile?username=$1 [R=301,L] 

其他的RewriteRules後

+0

是的,這是什麼已發佈在大多數其他論壇,我發現人們問同一個問題。但是,不幸的是,它顯然不適合他們,也不適合我。 我的WordPress的永久鏈接結構是: /%,比去年%/%monthnum%/%postname%/ 這WP創建.htaccess文件規則是: RewriteEngine敘述在 RewriteBase/learnwake。 RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d RewriteRule。 /learnwake.com/index.php [L] 2010-03-25 23:52:28

+0

哇,對不起,代碼混亂...換行符沒有保存。 – 2010-03-25 23:53:13

0

我發現有點用PHP和WordPress的功能,這樣的化妝轉變方式。

這裏是內幕。在你的模板代碼中包含$ wp_query全局變量,然後使用它的查詢屬性,這是一個數組。其中一個數組索引稱爲'pagename',它所做的是返回有問題頁面的請求URI。因此,假設您的網址是http://website.com/profile/johndoe和你的WordPress安裝在你的根目錄,然後此代碼:

global $wp_query; 
echo $wp_query->query['pagename'] 

將產出影響「的個人資料/ johndoe的」。

但是,如果網址是:http://website.com/cms/profile/johndoe這意味着你的WordPress在cms目錄,而不是根目錄安裝,上面的代碼仍然會返回profile/johndoe,這意味着,它考慮到什麼WordPress的ADRESS和網站之間的區別地址在設置面板中設置爲。

所以不管怎麼說,很大一部分是謂你可以把這個輸出分成數組,像這樣:

$segments = array_explode('/', $wp_query->query['pagename']); 

我相信,在這種情況下,第一段(profile將是分配給第一個指數數組等等)。

不管怎麼說,它不如CodeIgniter好,但它並不需要太多的代碼去做,它的確有用。