自定义帖子类型 slug 重复
Posted
技术标签:
【中文标题】自定义帖子类型 slug 重复【英文标题】:Custom post type slug duplicates 【发布时间】:2021-10-17 04:01:56 【问题描述】:我购买了一个插件,允许 buddypress 用户将新页面添加到他们的个人资料中,但遇到了一个问题,导致我联系了开发人员,却发现这似乎是每个自定义帖子类型的问题,并且不孤立于单个插件。这很可能是 Wordpress 的东西,但这非常不方便,我想知道是否有办法解决这个问题。
当用户将新页面添加到他们的个人资料时,即使永久链接是唯一的,如果用户将其页面命名为与另一个用户相同的名称,则会在永久链接中添加一个表示重复的数字。 例如: 用户 1 制作了一个名为“服务”的页面 (mysite.com/user1/services 用户 2 还创建了一个名为“服务”的页面 (mysite.com/user2/services-2) 我已将帖子类型固定链接更改为包含 /%author%/%post-name% ,它可以正常工作,并更改了固定链接,但如果多个页面具有相同的标题,则仍会在末尾添加一个数字。如果页面是由不同作者制作的,我该如何阻止这种情况发生?
这是我发送给插件开发人员的消息,他们告诉我问题不是永久链接,更多的是页面是自定义帖子类型,因此受制于与普通页面相同的 slug 规则,如果您创建了 2 个名为“contact”的页面,则第二个页面将获得“contact-2”,依此类推。
我曾假设用户的 buddypress/author 页面会被视为父页面,但事实似乎并非如此。这似乎发生在我自己的自定义帖子类型以及我碰巧使用的任何自定义帖子类型插件上,但直到现在我才测试过。即使永久链接本身是唯一的,自定义帖子类型也不能具有相同的标题/标签,即使是由不同的用户创建的,我也可以看到这会阻碍用户体验。
有人有什么想法吗?
【问题讨论】:
【参考方案1】:将作者添加到永久链接不会使页面独一无二。页面被定义为单独的对象,它们的永久链接仅与链接的最后一部分相关。
系统只比较帖子名称(slug)而不是完整的 URL 或永久链接。
mysite.com/user1/post_slug
如果 post_slug
与另一个帖子 slug 相同,则系统会添加增量。
只是为了澄清答案 - 帖子固定链接是由帖子 slug 定义的,而不是固定链接本身。
在您的情况下,我会做的是将这些页面设置为基于 ID 的永久链接。
【讨论】:
基于 ID 的永久链接,在这种情况下,会将 post slug 恢复为数字方式,不是吗?如果是这样,这将使用户更复杂,因为他们更有可能记住他们选择的页面名称,而不是系统生成的页面 ID。我试图避免这种情况,并允许我的用户以简单的方式将页面添加到他们的 buddypress 个人资料中,并且当他们想要将某人链接到该特定页面时,不需要用户去寻找他们的 URL。以上是关于自定义帖子类型 slug 重复的主要内容,如果未能解决你的问题,请参考以下文章
没有自定义帖子类型 slug 的 WordPress slug