WordPress 自定义帖子类型(Custom Post Types)显示 404 错误通常是因为 permalink 结构或 .htaccess 文件配置不正确,或者 WordPress 没有正确地重写规则来识别自定义帖子类型。以下是一些解决这个问题的步骤:
-
更新 Permalink 结构:
- 进入 WordPress 后台,点击“设置” > “固定链接”。
- 选择“朴素”结构,然后保存。
- 再选择你想要的固定链接结构(如“文章名”),然后再次保存。
-
检查 .htaccess 文件:
- 确保你的 WordPress 安装目录中有一个名为
.htaccess
的文件。 - 如果没有,创建一个新文件,并添加以下代码:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
- 将这个文件保存到你的 WordPress 安装目录中。
- 确保你的 WordPress 安装目录中有一个名为
-
重新注册自定义帖子类型:
- 检查你注册自定义帖子类型的代码,确保它正确无误。代码应该类似于以下示例:
function create_post_type() { register_post_type('custom_post_type', array( 'labels' => array( 'name' => __('Custom Post Type'), 'singular_name' => __('Custom Post') ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'custom-post-type'), ) ); } add_action('init', 'create_post_type');
- 确保
'rewrite' => array('slug' => 'custom-post-type'),
中的'slug'
与你想要的 URL 结构匹配。
- 检查你注册自定义帖子类型的代码,确保它正确无误。代码应该类似于以下示例:
-
刷新重写规则:
- 在 WordPress 后台,点击“设置” > “固定链接”,即使你没有改变结构,也点击“保存更改”。这会刷新 WordPress 的重写规则。
-
检查插件冲突:
- 如果你安装了任何缓存或安全插件,尝试暂时禁用它们,看看是否解决了问题。
-
检查主题:
- 有时候,主题的 functions.php 文件可能会干扰自定义帖子类型的重写规则。尝试切换到默认主题(如 Twenty Twenty-One),看看问题是否仍然存在。
-
增加内存限制:
- 有时 PHP 内存限制过低也会导致 404 错误。在
wp-config.php
文件中添加以下代码来增加内存限制:define('WP_MEMORY_LIMIT', '256M');
- 有时 PHP 内存限制过低也会导致 404 错误。在
如果以上步骤都无法解决问题,可能需要更深入地检查服务器配置或联系你的主机提供商寻求帮助。