2015-11-02 77 views
2

每個指南看起來都很簡單直接 - 只需將一小段代碼放入functions.php中,然後通過轉到永久鏈接並保存即可刷新重寫規則。但是即使使用最寬泛的描述符,我的功能也不會被承認。即使將正則表達式設置爲0,add_rewrite_rule也會被忽略。*

我有我從這個使用的代碼慢慢消減下來:

function new_rewrite() { 
    add_rewrite_rule('^u/(.+)/?$','index.php?pagename=user-profile&user=$matches[1]','top'); 
} 
add_action('init', 'new_rewrite'); 

到向我證明這完全包羅萬象的版本是非常嚴重的錯誤在這裏:

function new_rewrite() { 
    add_rewrite_rule('.*','index.php','top'); 
} 
add_action('init', 'new_rewrite'); 

當我使用上面的代碼 - 只要我有意義,應該接受任何提供給它的內容並返回主頁---而不是完全忽略它,並且所有的工作方式與之前我試圖編寫任何規則的方式完全相同。

讓我重申一下:我已經將它放在了functions.php中,我添加了很多其他函數,例如add_custom_query_var以取得巨大成功,並且我也不斷刷新重寫規則。

這裏可能會發生什麼?

+0

如果已正確刷新,您應該在htaccess中看到生成的規則。 – vard

+0

@vard好吧我不知道它寫到htaccess。我檢查了,規則沒有出現在那裏。什麼可能會阻止我的同花順? –

+0

也許在htaccess文件上有一些權限問題? – vard

回答

1

WordPress的使用位於他安裝的根htaccess的 - 而不是網站服務器文件夾的根 - 所以htaccess的是WP將覆蓋是一個是作爲同一級別的wp-config.php文件

默認情況下,WP htaccess的含有這兩種意見:

# BEGIN WordPress 
# END WordPress 

WordPress的使用它們知道他應該add_rewrite_rule添加生成的規則 - 它有時是有用的移動這樣的評論,使規則更加高於或與其他一些自定義規則相比較低。