php - CPT 和父页面的自定义永久链接。高级WordPress
问题描述
所以,我创建了一个 CPT - Community Post
:https
://pastebin.com/9XSrvZAr
对于这个 CPT,我创建了两个自定义分类:https ://pastebin.com/fNhfpiM6
community_post_domain
community_post_type
我的目标是所有单个社区帖子的永久链接如下:
https://example.com/community/%POST_DOMAIN_SLUG%/%POST_SLUG%
例如,如果我有一个标题为“Go Micro”的社区帖子Services',并且它已community_post_domain
设置为一个名为 的术语Kubernetes
,永久链接将是:
https ://example.com/community/kubernetes/go-micro-services 。
这就是我进行永久链接操作的方式: https ://pastebin.com/aP5rEBjY
另外,我创建了一个静态页面:Community
,它具有永久链接:https://example.com/community。
到目前为止,一切都很好。当我尝试发布一个页面并且我希望它具有这样的永久链接时,就会出现问题:https://example.com/community/%PAGE_SLUG%
我创建了这个页面,比如说,Hello World
. 我将父级设置为Community
页面。当我单击Publish
时,页面被创建,在 WordPress 仪表板中,我看到该页面的永久链接符合预期:https
:
//example.com/community/hello-world 但是,这是实际的问题- 当我试图访问页面的永久链接,我得到 404。
我试着去Permalinks
在 WP 仪表板中并更新永久链接,没有帮助。这里有什么想法吗?
解决方案
假设通常我们不会有太多的页面(5-10),解决这个问题的最简单和最快的方法是不重写所有内容,为每个页面编写单独的 rewrite_rules。
add_rewrite_rule(
'^community/hello-world/?',
'index.php?page_id=123',
'top'
);
你的问题的基础是这条线
'rewrite' => array( 'slug' => 'community', 'with_front' => false ),
当您注册自定义分类时,您使用
'slug' => 'community'
现在 wordpress 认为在这个链接https://example.com/community/hello-world/
hello-world = 分类蛞蝓
要更准确地诊断此类问题并查看当前页面上使用的重写规则 - 试试这个插件https://wordpress.org/plugins/query-monitor/
推荐阅读
- javascript - 我正在尝试将 JSON 数据的值存储在 servlet 的数组中,但它显示 post.map 不起作用
- javascript - HTML 多选选项组选择框始终滚动到顶部
- python - 在 Python 中多次创建海龟对象
- python-3.x - 从 SSH 未从字节解码为 ASCII?
- objective-c - 与Objective C等效的stringFromCharCode?
- sql - SQL Server 以小时为单位的时间差为整数
- python - Plotly 3D 散点图在 Google Colab 中的窗口大小非常小
- amazon-redshift - Redshift COPY 命令需要很长时间
- python - psutil.disk_usage('/') 返回奇怪的值
- pandas - 数据有什么问题??尽管有值但不显示正确的标签,但显示 NaN 值