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%/

但是,我在自定义帖子类型“电影”下创建了一个新的自定义帖子,帖子名称为“Apple”,链接显示404 File Not Found。该.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 Not Found 仍然存在。我还可以做些什么?

尝试了以下方法:

  1. publicly_queryable值添加true到选项数组(它不是必需的,因为public已经设置为true并且默认值publicly_queryable等于的值public

  2. with_front值添加truerewrite子数组( * 它也不是必需的,因为默认值为with_frontis true

  3. flush_rewrite_rules(false);之后添加register_post_type()

以上所有尝试均无效。缓存已被禁用和刷新。

参考问题:

4

2 回答 2

0

如果您使用 Chrome 进行测试,您将需要确保您的浏览器缓存已清空。使用 Chrome 菜单清空缓存。这不止一次地咬了我。我清除缓存,退出 Chrome,重新访问该站点。

我也遇到了在永久链接上保存更改而不刷新永久链接表的问题。更改为默认的帖子 ID 帖子类型,而不是恢复正常的帖子类型。

我的客户群遇到的另一个问题是 WordPress 主题,它增加了永久链接规则。如果没有正确完成,可能会导致自定义帖子类型出现故障。尝试使用默认的 WordPress 主题,例如二十三。

如果所有其他方法都失败,请从安装干净的 WordPress 3.6 的测试站点开始,添加您的自定义帖子类型和其他任何内容(没有主题更改或额外的插件)。这将消除所有其他变量,让您专注于服务器和系统规则。但是,您似乎已经排除了这一点。

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

于 2013-09-11T03:47:52.017 回答
0

该问题不是由 WordPress 配置或 PHP 配置引起的。不工作的原因.htaccess是:在我的 Apache 虚拟主机设置中,它被配置为忽略.htaccess

AllowOverride None

要禁用此锁定,请将虚拟主机文件(sites-enabled文件夹中)中的值更改为:

AllowOverride All

然后重新启动Apache。

于 2013-09-13T06:53:20.387 回答