我创建了一个分配了自定义模板的新页面。当我访问该页面的url时,我看到的似乎是默认页面布局(不是我的模板),并且管理工具栏显示与媒体相关的选项(例如:编辑媒体)。
经过一番努力,我推断出这个网址一定指向一个媒体项目,我编辑了这个页面,“宾果”,实际的页面就像预期的那样出现了,当我访问原始网址(从第一个slug)时,我看到了相同的媒体项目。
**底线:**似乎巧合的是,页面和媒体项目共享相同的名称,这是不知何故导致WP的电线交叉。
**我的问题:**有人能帮我理解这种情况是如何/为什么发生的吗?wordpress是否会创建指向媒体库中所有内容的神奇永久链接(除了它们在wp-content/uploads/...
中的位置)?
注:媒体项目已正常上载到媒体库(而不是FTP到根目录等)
4条答案
按热度按时间r7s23pms1#
是的,在WordPress中你不能有重复的slug/category/taxonomies/tags。所以如果你的主题允许媒体文件和固定链接有自己的页面,而slug和另一个是一样的,它通常会附加一个数字,因为数据库不喜欢它。
5n0oy7gb2#
我只是有这个问题,并修复它这样:
amrnrhlw3#
这是一个迟来的答案,但我想给予
alesub
给出的答案的更清晰的版本。这个函数在主题设置完成后立即在一个action钩子上运行。第一行检查数据库
images_updated
中是否有一个选项。如果该选项存在,我们放弃该函数,它不做任何处理。否则,如果该选项不存在,它运行该函数并在最后设置该选项。这使得它只运行一次。您不必在刷新后删除该函数。如果您想再次运行它,只需删除顶部的
if
语句。警告:这样做将在post_names
的末尾添加另一个-image
,即使它们已经有-image
(例如-image-image
)可能会有更多的文件名检查的情况下。将更新的答案,如果有人真的需要它。
iyfjxgzm4#
我建议不要盲目地使用alesub或disinfor的代码,而是使用一个更好的选项,即“禁用媒体页面”插件。
https://github.com/joppuyo/disable-media-pages
它会自动将所有附件插件设置为一个唯一的ID,并且可以选择损坏任何现有的附件插件,这样它们就不会在未来造成任何问题。