添加在 Wordpress 自定义 post 类型管理表单中动态变化的下拉列表

Add dropdown that dynamically change in Wordpress custom post type admin form

我需要在 Wordpress 中创建一个自定义 post 类型,其中有一个名为“代码”的字段。我们称此 CPT 为“城市代码”。每个代码都与一个城市相关联。这个关联用JSON表示如下:

{
  cities: [
    {
     name: "New York",
     codes: [1,2,3]
    }
    ...
  ]
}

我不想让用户在管理区域中创建 post 时手动输入代码。为了避免这个问题,我想实现两个下拉菜单。第一个下拉列表包含城市列表。当用户 select 是一个城市时,应该在第二个下拉列表中启用与该城市相关的代码列表。例如,如果用户 select 的“纽约”,则第二个下拉菜单将使用户能够 select 1、2 或 3 个代码。

我对实现下拉动态没有任何疑问。

问题是:如何在 CPT add/editing 区域添加这些自定义下拉菜单?

我试过 Advanced Custom Fields Pro 插件,但是它没有提供满足我需要的自定义选项。

为了处理这个问题,我首先使用 custom metabox 生成了两个自定义字段:一个用于城市,另一个用于代码。

在每个自定义字段中,我定义了一个可以由 javascript 脚本处理的唯一 class。然后,我编写了一个 Jquery 脚本来处理第一个字段上的 change 事件。当用户更改它时,我只需使用 Jquery.

重写第二个字段中的选项列表

最后,我只是加载了我想要的区域的字段。

使用这种方法,WordPress 将两个值(城市和代码)存储为 post 元。它可以使用 get_post_meta 函数获得。