我使用已经成功用于其他项目的代码创建了两种新的自定义帖子类型。第一个叫做top_charts,另一个叫case_studies,两个都正确显示在管理菜单中,因此我可以创建新帖子。

不幸的是新帖子没有出现。我刚刚得到一个404.php响应。

我创建了一个archive-top_charts.php以查看是否可以显示任何内容,但我看到一个404.php“未找到页面”答复。

我最初将自定义帖子命名为top-chartscase-studies,但我认为连字符可能是问题所在,因此将其重命名为使用下划线。它没有帮助。

我尝试重新保存我的永久链接,但没有任何改变。我的.htaccess页面看起来也与您期望的一样(其他页面工作正常)。我还能检查什么?

评论

您是否使用过flush_rewrite_rules(false);在注册职位类型?有关更多详细信息,请单击此链接nooshu.com/page-not-found-with-custom-post-types

谢谢。这将链接固定到帖子本身,但未将archive-top_charts.php页面固定。奇怪!

只需在答案中添加一部分内容,这可能会对其他用户有所帮助,并尝试查找存档。

在另一个堆栈帖子中找到了对此错误的简单答案:找不到自定义帖子类型固定链接页面

#1 楼

要修复未找到的自定义帖子,请在您的functions.php中使用以下代码:

flush_rewrite_rules( false );


您仅应将此作为临时措施,否则它将在每次页面加载时运行。 br />
有关更多详细信息,请单击此链接

关于未出现archive-top_charts.php,请在注册帖子类型时确保您具有'has_archive' => true

评论


伟大的你发现'has_archive':)

– Jas
2015年9月16日下午13:33

为什么这仍然有效?为什么这不是wordpress错误?

–伺服器
20年9月4日在18:09

#2 楼

您不必编辑php代码!

虽然您可以在注册自定义帖子类型的函数中执行此操作,但与其他答案一样,也可以在设置菜单中执行此操作,因此避免触摸您的php代码:

从仪表板刷新WordPress重写规则或永久链接(对于新的自定义帖子类型,通常需要手动完成):


在主菜单中找到“设置>永久链接”。
如果需要向下滚动并单击“保存更改”。
刷新规则和永久链接。

就这么简单!


参考

评论


我相信我也需要has_archive,但是很高兴知道您可以通过菜单强制刷新。

– Django Reinhardt
17年1月9日在11:44

有什么方法可以自动保存对(更新)永久链接的更改,而不是每次添加CPT类别/术语时都转到“设置”>“永久链接”吗?就像非管理员如果无法访问设置将如何执行此操作?添加新类别以自动刷新永久链接时可以调用挂钩吗?

– Ryan Coolwebs
17年2月2日在2:08

#3 楼

我意识到这已经很晚了(可能不是相关的问题),但是我想向其他人指出一个可能的问题。工具和内容类型重写为同一件事。因此,它永远不会正常工作,因为这是一个冲突。不幸的是,没有发现这样的东西,所以我想将其指出给其他人。

#4 楼

我只是为重写规则添加了这行,这就是我的原因。评论后或将其删除也可以解决,但您也可以使其成为现实。
flush_rewrite_rules( true );


#5 楼

就我而言,它缺少开发文件夹中的权限,因此无法创建广告/修改.htaccess文件。

因此手动刷新或保存WP Permalinks中的更改无济于事。

解决方案是自己创建.htaccess文件