【发布时间】:2013-09-11 03:23:38
【问题描述】:
我注册了一个新的自定义帖子类型:
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 仍然存在。我还能做什么?
尝试了以下方法:
将带有值
true的publicly_queryable添加到选项数组(这不是必需的,因为public已经设置为true,默认值publicly_queryable等于public)将带有值
true的with_front添加到rewrite子数组(*也不是必须的,with_front的默认值是true)在
register_post_type()之后添加flush_rewrite_rules(false);
以上所有尝试均无效。缓存已被禁用和刷新。
参考问题:
【问题讨论】:
-
您是否尝试将
flush_rewrite_rules( false );放在后面??另外,如果您更改永久链接结构会发生什么?你有'publicly_queryable' => true, -
添加
'publicly_queryable' => true&flush_rewrite_rules( false );& 清除缓存后,还是404 Not Found... -
好的.. 我现在能想到的最后一件事是尝试将
'rewrite' => array("slug" => "films","with_front" => true),与其他人结合起来。大约两周前我遇到了同样的问题,但我不记得罪魁祸首在哪里。并将永久链接结构更改为默认结果.. -
另外 - 你如何访问该页面?通过菜单项?
-
通过 WordPress 菜单在自定义帖子中添加新帖子。然后点击“查看帖子”
标签: wordpress .htaccess mod-rewrite