我注册了一个新的自定义帖子类型:
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%/
但是,我在自定义帖子类型“Films”下创建了一个新的自定义帖子,帖子名称为“Apple”,链接显示 404 File Not Found 。 WordPress&amp ;; .htaccess
文件是可写的。 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 Not Found仍然存在。我还能做什么?
尝试以下方法:
将publicly_queryable
值true
添加到选项数组(不需要,因为public
已设置为true
且默认值为{ {1}}等于publicly_queryable
)
将值public
with_front
添加到true
子阵列(*不需要它,因为rewrite
的默认值为{{1} })
在with_front
true
醇>
以上所有尝试均无效。缓存已被禁用&amp;冲洗。
参考问题:
答案 0 :(得分:0)
如果您使用Chrome进行测试,则需要确保清空浏览器缓存。使用Chrome菜单清空缓存。这不止一次咬我。我清除缓存,退出Chrome,重新访问该网站。
我也遇到过永久链接保存更改的问题,而不会刷新固定链接表。更改为默认的帖子ID帖子类型,而不是回到正常的帖子类型。
我遇到的另一个问题是我的客户群是一个WordPress主题,它正在增加固定链接规则。如果操作不正确,可能会导致自定义帖子类型出现故障。尝试默认的WordPress主题,如Twenty Thirteen。
如果所有其他方法都失败,请使用干净的WordPress 3.6安装测试网站,添加您的自定义帖子类型和NOTHING其他(没有主题更改或额外的插件)。这将消除所有其他变量,让您专注于服务器和系统规则。但是,似乎你已经排除了这一点。
祝你好运&amp;如果你自己找到它,请记得分享你的答案。答案 1 :(得分:0)
问题不在于WordPress配置或PHP配置。 .htaccess
无效的原因是:在我的Apache虚拟主机设置中,它被配置为忽略.htaccess
:
AllowOverride None
要禁用此锁定,请将虚拟主机文件(在sites-enabled
文件夹中)中的值更改为:
AllowOverride All
然后重新启动 Apache。