首页
学习
活动
专区
工具
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规则和服务器配置的信息。

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

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

相关·内容

史上最详细WordPress自定义文章类型指南(1)

WordPress还会自动再加回来。 不管用哪种方式,再次打开刚才文章链接就不会404了。可以愉快自定义文章类型下面发布文章了。...Custom Post Type固定链接(Permalink)结构默认是类似 /custome_post_type/post_name,如果没有设置slug,则默认会用post type类型名作为slug...但是如果你想对其进一步自定义的话,WordPress并没有在后台提供自定义文章类型固定链接设置,上文提到Settings中找到Permalink Settings这种设置方式只对自带Post有效,...使用代码方式比较重,比较麻烦,不适合普通用户,而且我也没有这方面的需求,就不写了,感兴趣可以看看这篇文章: 如何修改自定义文章类型固定链接 这方面最好插件就是 Custom Post Type...使用很简单,安装、激活,在Settings中找到Permalink Settings页面中会多出一部分,能够让你对自定义文章类型固定链接格式进行设置,就像设置文章固定链接那样。 ?

4.3K20

WordPress 中 body_class 函数那些事

普通文章页面输出:single-post自定义文章类型文章页面输出:single-{posttype} 类 如果支持文章格式的话: 指定了文章格式文章会输出:single-format-{...日期(Date)存档索引页面输出:date 自定义文章类型存档索引页面输出:post-type-archive post-type-archive-{posttype} 作者存档页面输出:archive...:post-type-paged-{n} 404 错误页面 错误页面输出 error404 类。...但是这样自定义是完全没有什么价值,我们往往希望通过更详细判断语句来判断出某些特定页面,然后增加相应类。这样,就需要 WordPress 强大条件判断标签了。...需要注意一点,WordPress 系统在不断升级,可能会对本文中输出类规则有所变更,如果你发现某个规则是错误,请以实际输出为准。

47430
  • WordPress 条件判断标签及用法大全

    注意:这个函数对于传递参数,并无法很明确判断参数究竟是 id、文章标题或者是文章别名,如果参数为 17,当 id 为 17 文章会返回 True,当 Slug 为 17 文章也会返回 True。...文章类型Post Type) get_post_type() 严格意义上,这并不是一个条件判断标签,它会返回当前文章注册文章类型,并且可以通过类似 if ( 'book' == get_post_type...is_post_type_archive() 判断是否在任何自定义文章类型存档页面(post type archive)。...--nextpage--> 标签可以将内容分隔开分成不同页面,并通过对应函数获取分页列表。...判断是否为 404 页面(404 Not Found Page) is_404() 判断当前页面是否带有 “HTTP 404:Not Found” 错误

    3.6K20

    WordPress主题制作(一):主题文件结构

    主页 front-page.php——静态首页 home.php——动态首页 index.php——默认模板 文章单页 single-{post-type} – {slug} .php——用于显示任意类型单个特定文章...index.php 单页(非文章) 自定义模板——在WordPress后台创建页面的地方,右侧边栏可以选择页面的自定义模板 page-{slug}.php——如果页面的缩略名是news,WordPress...archive.php index.php 自定义文章分类 archive- {post_type} .php——如果你文章类型是review,WordPress会寻找archive-review.php...searchform.php——显示搜索表单模板 index.php 404 (未找到)页面 404.php——显示404错误页面的默认模板 index.php 附件页面 MIME_type.php...embed- {post-type} – {post_format} .php——WordPress将首先查找帖子类型和帖子格式模板。

    1.9K30

    WordPress 模板层次详细介绍

    -{post_type}.php 这样一个模板文件(如文章类型是 product 那么对应文件名就是 single-product.php ) 如果找不到,那么就会加载 single.php 模板 如果...页面 首先被考虑自定义模板,也就是编辑页面时所选择模板 如果没有自定义模板,则查找 page-{slug}.php 别名模板(如页面别名是 about 对应文件名就是 page-about.php...自定义分类法 有时候除了WordPress默认分类目录和标签我们还需要其他分类方法,这时候我们就会注册一个新分类法,那么在此之前知道分类法模板加载顺序也是十分必要。... index.php 模板 自定义文章类型 除了自定义分类法,有时候我们也需要自定义文章类型自定义文章类型归档页首先被考虑是 archive-{post_type}.php 别名模板(如文章类型是...原文链接:http://www.dmeng.net/wordpress-template-hierarchy.html

    69630

    WordPress主题开发基础:Body 类指南

    >> WordPress根据显示页面类型自动添加适当类。 例如,如果您在存档页面上,WordPress将自动将存档类添加到body元素。它几乎针对每个页面都执行此操作。...如果您在自己网站上工作,则还可以使用主题定制器中自定义CSS功能添加CSS 。 您可以选择要启用body分类功能文章类型以及谁可以访问它。不要忘记单击“保存更改”按钮来存储您设置。...您可以选择要启用body分类功能文章类型以及谁可以访问它。不要忘记单击“保存更改”按钮来存储您设置。 接下来,您可以直接编辑WordPress网站上任何文章或页面。...在文章编辑屏幕上,您会在右侧列中找到一个名为“文章类(Post Classes)”新元框。 单击以添加您自定义CSS类。您可以添加多个由空格分隔类。 完成后,您只需保存或发布您文章即可。...这些条件标签是true或false数据类型,用于检查WordPress条件是true还是false。例如,条件标签is_home检查当前显示页面是否为主页。

    2.1K20

    WordPress 内置数组处理相关函数大全

    wp_parse_args wp_parse_args($args, $defaults=[]) 将用户定义参数(args)合并到默认参数(defaults)中,用户自定义参数可以是数组,也可以是对象...,甚至支持链接地址查询类型字符串(比如:"id=5&status=draft")。...也可以使用该函数将链接地址查询类型字符串转换成数组: $args = wp_parse_args('post_type=post&posts_per_page=5&cat=1'); // 输出 Array...wp_parse_slug_list($list) 将多个字符串组成数组,或者逗号或者空格分隔字符串列表,转换过一个别名(slug)(对数组每个元素调用 sanitize_title 处理)数组...或者数组)列表,比如下面就是 WordPress 查询到了多种 post_type 日志列表结果,过滤出 page 类型: $pages = wp_list_filter( $wp_query->posts

    1.4K30

    启用WP Super Cache纯代码版本之后一些优化措施

    替换机制也很简单,就是借用了 php 正则替换函数:preg_replace(),其语法如下: preg_replace('/搜索字符串/','替换字符串','全部内容') 比如,需要将 hello...③、新增触发按钮 在文章、单页页面,合适位置新增一个按钮或超链接,然后将其 id 改为 clean 即可实现点击该按钮时清理当前页面缓存,比如张戈博客将一个图片链接放到了百度分享工具条上(实现全局清理后...六、禁止缓存 404 针对第⑾条 当有人有意无意访问到一些不存在页面地址时,缓存代码会将 404 页面给缓存成 html。...先不说这样文件夹会不会逼死强迫症。一旦这些奇葩路径被缓存,那么再次被访问,返回就不再是 404 状态了,而是正常 200 状态!...典型案例:明明是一个 404 错误,因为被缓存了,就被百度给收录了: ? ? 很简单处理办法: ①、打开主题目录下 404.php 模板(国产主题大部分有),然后在任意位置插入<!

    1.3K70

    WordPress 教程:自定义页面(Page)模板样式

    WordPress 中文章(Post)和页面(Page)区别 WordPress 既然作为一个小型 CMS 系统,文章肯定是最核心内容。...而一个 CMS 中,肯定不能只包含正文文章,一般在底部都包含了诸如“关于我们”、“联系我们”等页面,WordPress页面就是比较静态比较固定内容页面,一般是独立,与其他内容不太相关。...如果有相关内容,一般是父子关系,即父页面下面的子页面。而且页面可以很方便定义“别名”(slug),也就是方便自定义页面的链接。...只要某个文件带有这个注释并且放置在当前主题目录中,就会被 WordPress 发现,然后就会出现在后台选项中。 再说一下,这个页面模板可以是任意内容,不一定复制原有的结构,可以自由发挥。...通过 WordPress 主题文件优先级层次图可以得知: page-{id}.php page-{slug}.php 这两种类型命名文件,会覆盖对应页面的默认页面模板。

    3.4K30

    wordpress 学习笔记 (二)

    [is_attachment] 附件详情页 [post_mime_type] 附件类型:MIME [posts] [post] 同文章详情页 10.首页查询 默认: [is_home] => 当前页是首页...错误页【404】页面的查询 [is_404] => 当前页是404页 没有[query_object]字段 [posts] [post] 里面都为空 13....字符串值,默认为空 默认以无序列表输出分类链接,当文章指定了多个分类时,提供一个字符用于分隔这些分类链接。...获取文章所属标签信息(tags) wp模板标签the_tags用于在文章页输出标签链接 函数参数 ① $before 字符串值,默认值:null 在标签链接 前 显示文本。...② $sep 字符串值,默认值:, 在每个标签链接 之间 显示文本。 ③ $after 字符串值,默认为空 在标签链接 后 显示文本。

    94720

    如何处理WordPress网站404状态死链

    如果访问网站所有内容上均看到此错误,则通常是由于WordPress网站固定链接出现问题。但是,如果仅在单个内容上看到它,则最有可能是因为您在不设置重定向情况下更改了目录内容。...默认情况下,某些WordPress主题还包括自定义404页面。因此,您实际上可能根本看不到404错误消息,因为许多网站将改用有趣或富有创意404页面。...更新WordPress网站固定链接 如果您尝试访问内容时遇到站点范围内404错误,则最可能原因是固定链接。解决此问题最简单方法是通过WordPress仪表板更新您固定链接设置。...重新生成WordPress固定链接 但如果你使用自定义链接,需要让WordPress实现伪静态URL,则可能需要对服务器进行URL重写规则配置,具体操作如下: 如果你使用是LNMP环境,一般情况下你在配置...但如果你在使用/%post_id%.html格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下: Nginx伪静态配置 一般目录为/usr/local/nginx

    4.8K10

    WordPress自定义查询:WP_Query使用

    wordpress默认会根据网址调用数据,不能满足我们所有建站要求,而WP_Query可以用于查询任何你想要内容,相当于自定义数据调用。 wordpress主循环 <?...', //(字符串) - 自定义分类法 'field' => 'slug', //(字符串) - 使用别名还是分类作为查询条件 ('id' 或 'slug') 'terms' => array.../canada', //(字符串) - 用斜杠‘/’分割父页面别名/子页面别名来显示子页面 'post_parent' => 1, //(整数) - 页面id,只返回子页面,只对有子页面的页面有效 '...( //(字符串/ 数组) - 文章类型,根据文章类型获取文章,默认为'post' 'post', // - 文章 'page', // - 页面 'revision', //...'my-post-type', // - 自定义文章类型 (例如:movies) ), 'post_status' => array( //(字符串 / 数组) - 使用文章状态,根据文章状态获取文章,

    1.4K20

    WordPress自定义查询WP_Query使用方法大全

    ', //(字符串) - 自定义分类法 'field' => 'slug', //(字符串) - 使用别名还是分类作为查询条件 ('id' 或 'slug') 'terms' => array.../canada', //(字符串) - 用斜杠‘/’分割父页面别名/子页面别名来显示子页面 'post_parent' => 1, //(整数) - 页面id,只返回子页面,只对有子页面的页面有效 '...( //(字符串/ 数组) - 文章类型,根据文章类型获取文章,默认为'post' 'post', // - 文章 'page', // - 页面 'revision', //...'my-post-type', // - 自定义文章类型 (例如:movies) ), 'post_status' => array( //(字符串 / 数组) - 使用文章状态,根据文章状态获取文章,...') 'type' => 'CHAR', //(字符串) -自定义字段类型,可用值有:'NUMERIC', 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL

    4.2K41
    领券