首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有连字符分隔的slug的Wordpress自定义post类型固定链接返回404错误

可能是由以下原因导致的:

  1. 未注册rewrite规则:当你创建一个自定义的post类型并且希望使用连字符分隔的slug时,你需要确保已经在WordPress中注册了rewrite规则。可以通过使用register_post_type()函数来注册自定义post类型,并在参数中设置'rewrite'选项来定义规则。

例如,假设你的自定义post类型名称为'book',你可以通过以下方式注册rewrite规则:

代码语言:txt
复制
function custom_post_type() {
    $args = array(
        'rewrite' => array('slug' => 'books/%book-category%'),
        // 其他参数...
    );
    register_post_type('book', $args);
}
add_action('init', 'custom_post_type');

上述代码中,'slug'选项定义了自定义post类型的固定链接结构。在这个例子中,固定链接将以'books'开头,并且后面是一个带有占位符'%book-category%'的连字符分隔的slug。

  1. 未刷新rewrite规则:如果你已经注册了rewrite规则,但仍然遇到404错误,那么可能是因为你没有刷新WordPress的rewrite规则。你可以通过在WordPress后台的Settings -> Permalinks页面上点击"Save Changes"按钮来刷新规则。
  2. slug冲突:如果你的自定义post类型的slug与其他已经存在的页面、分类或标签的slug冲突,WordPress可能会返回404错误。你可以尝试更改自定义post类型的slug以避免冲突。
  3. 未正确解析占位符:如果在rewrite规则中使用了占位符(例如上述例子中的'%book-category%'),但你没有在代码中解析它,WordPress可能无法正确生成固定链接。你可以使用add_rewrite_tag()函数来解析占位符,并在rewrite规则中使用相应的占位符名称。

以下是解析占位符的示例代码:

代码语言:txt
复制
function custom_rewrite_tag() {
    add_rewrite_tag('%book-category%', '([^/]+)');
}
add_action('init', 'custom_rewrite_tag');
  1. 服务器配置问题:有时,404错误可能是由于服务器配置问题导致的。你可以尝试检查你的服务器配置,确保rewrite模块已经启用,并且允许.htaccess文件中的rewrite规则生效。

对于问题的解决,你可以尝试按照上述步骤进行排查,并根据具体情况调整和修改你的代码和配置。如果你使用腾讯云的WordPress托管服务,你可以参考腾讯云提供的WordPress文档和支持文档来了解更多关于自定义post类型、rewrite规则和服务器配置的信息。

希望这些信息对你有帮助!如有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券