2013-09-11 223 views
3

我註冊一個新的自定義文章類型有:自定義永久鏈接

register_post_type('abcd_film', 
    array(
     'labels' => array(
      'name' => __('Films'), 
      'singular_name' => __('Film') 
     ), 
     'description' => 'Manage the Films', 
     'supports'  => array('title', 'editor', 'custom-fields',), 
     'public'  => true, 
     'has_archive' => true, 
     'rewrite'  => array('slug' => 'films'), 
    ) 
); 

我的WordPress位於(虛擬鏈路):

www.example.com/folder/wordpress/

我的永久鏈接設置爲( 「後名」 選項):

www.example.com/folder/wordpress/%postname%/

不過,我創建了自定義後鍵入「電影」與後名稱爲「蘋果」下一個新的自定義後,該鏈接顯示404未找到文件。該.htaccess文件是由WordPress &由WordPress的書面當前內容寫爲:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /folder/wordpress/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /folder/wordpress/index.php [L] 
</IfModule> 

# END WordPress 

我是雙phpinfo()選中,mod_rewrite()模塊處於「加載的模塊」部分。另外,我嘗試刷新WordPress Admin > General > Permalink > Save Changes中的固定鏈接設置。

404未找到仍然存在。我還可以做些什麼?

試過如下:

  1. 添加publicly_queryable與值true到選項陣列(它不是必需的,因爲public已經設置爲truepublicly_queryable默認值是等於public的值)

  2. add with_front with value true to rewrite sub-array(* this does not required,作爲with_front默認值是true

  3. register_post_type()

flush_rewrite_rules(false);添加所有上述的嘗試沒有任何效果。緩存已被禁用&已刷新。

參考問題:

+0

你試過把'flush_rewrite_rules(false); '剛纔?另外,如果你改變永久鏈接結構會發生什麼?你有''public_queryable'=> true,' –

+0

添加''public_queryable'=> true'&'flush_rewrite_rules(false);'&清除緩存,404仍未找到... – Raptor

+0

好吧..最後一件事我現在可以想到的是嘗試''rewrite'=> array(「slug」=>「films」,「with_front」=> true),'與其他人合併。大約兩週前我有同樣的問題,但我不記得罪魁禍首是在哪裏。並請將鏈接結構更改的結果發佈到默認頁面。 –

回答

0

該問題不是由於WordPress配置或PHP配置引起的。的.htaccess不工作的原因是:在我的Apache虛擬主機的設置,它被配置爲忽略.htaccess

AllowOverride None 

要禁用此鎖,更改虛擬主機文件中的值(在sites-enabled文件夾):

AllowOverride All 

然後重啓的Apache。

0

如果您使用的是Chrome測試這個你要確保你的瀏覽器緩存被清空。使用Chrome菜單清空緩存。這讓我不止一次地咬傷了我。我清除緩存,退出Chrome,重新訪問該網站。

我也有保存更改永久鏈接而不是沖洗永久鏈接表的問題。更改爲默認的帖子ID帖子類型,而不是回到您的正常帖子類型。

我與我的客戶羣碰到的另一個問題是增加了固定鏈接規則的WordPress主題。如果處理不當,可能導致自定義帖子類型發生故障。嘗試一個默認的WordPress主題,如二十十三。

如果一切都失敗開始與乾淨的WordPress 3.6安裝測試網站,添加您的自定義帖子類型和沒有別的(沒有主題更改或額外的插件)。這將消除所有其他變量,並讓您專注於服務器和系統規則。但是,似乎你已經排除了這一點。

祝你好運&記得分享你的答案,如果你自己找到它。