2013-09-11 230 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安装测试网站,添加您的自定义帖子类型和没有别的(没有主题更改或额外的插件)。这将消除所有其他变量,并让您专注于服务器和系统规则。但是,似乎你已经排除了这一点。

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