自定义帖子类型与外部 JS 库冲突

Posted

技术标签:

【中文标题】自定义帖子类型与外部 JS 库冲突【英文标题】:Custom post type ***es with external JS library 【发布时间】:2022-01-22 07:08:55 【问题描述】:

我的网站使用 JS 预订脚本(小部件),该脚本使用 GET 参数“accommodation”来告诉预订页面它喜欢预订哪种住宿。

但是,我有一个具有该确切名称的自定义帖子类型:

register_post_type('accommodation', [
        'labels' => $labels,
        'public' => true,
        'menu_icon' => 'dashicons-location-alt',
        'supports' => ['title', 'revisions'],
        'has_archive' => false,
        'publicly_queryable' => true,
        'rewrite' => [
                'slug' => 'our-accommodations',
                'with_front' => false,
                'feeds' => false,
                'pages' => false,
        ],
    ]);

它会破坏外部 JS 脚本除非我将该自定义帖子类型的 publicly_queryable 设置为 false

如何在不更改帖子类型名称的情况下解决这个问题?

【问题讨论】:

【参考方案1】:

尝试在调用register_post_type 时更改args 数组中的query_var 参数。这样,您可以将“住宿”作为帖子类型,并且查询字符串变量可能类似于“我们的住宿”。见register_post_type

register_post_type('accommodation', [
        'labels' => $labels,
        'public' => true,
        'menu_icon' => 'dashicons-location-alt',
        'supports' => ['title', 'revisions'],
        'has_archive' => false,
        'publicly_queryable' => true,
        'query_var' => 'our-accommodations',
    ]);

【讨论】:

感谢您的回复,这使得帖子类型的所有链接都转到https://example.com/archives/accommodation/name,返回404。

以上是关于自定义帖子类型与外部 JS 库冲突的主要内容,如果未能解决你的问题,请参考以下文章

自定义帖子类型 Slug 冲突

php 通过帖子ID外部循环呈现自定义帖子类型永久链接

带上传的 WordPress 3.0 自定义帖子类型

拥有一个与自定义帖子类型“front”slug 标题相同的 WordPress 页面

以自定义帖子类型显示标签面板

自定义帖子类型等效于 Wordpress 中的“帖子页面”设置