#wordpress #dropdown #custom-post-type
#wordpress #выпадающий список #пользовательский тип записи
Вопрос:
Мне нужно создать пользовательский тип записи в WordPress с полем под названием «код». Давайте назовем этот CPT «city-code». Каждый код связан с городом. Эта связь представлена в формате JSON следующим образом:
{
cities: [
{
name: "New York",
codes: [1,2,3]
}
...
]
}
Я не хочу, чтобы пользователь вводил код вручную при создании сообщения в области администрирования. Чтобы избежать этой проблемы, я хочу реализовать два выпадающих списка. В первом выпадающем списке есть список городов. Когда пользователь выбирает город, во втором выпадающем списке должен быть включен список кодов, связанных с этим городом. Например, если пользователь выбирает «Нью-Йорк», второй выпадающий список позволит пользователю выбрать 1, 2 или 3 кода.
У меня нет вопросов о реализации динамики выпадающего списка.
Вопрос в том, как я могу добавить эти пользовательские выпадающие списки в область добавления / редактирования CPT?
Я пробовал плагин Advanced Custom Fields Pro, но он не предлагает настраиваемых параметров, которые отвечают моим потребностям.
Ответ №1:
Чтобы решить эту проблему, я сначала использовал пользовательский метабокс для создания двух пользовательских полей: одно для города, другое для кода.
В каждом пользовательском поле я определил уникальный класс, который может обрабатываться скриптом javascript. Затем я пишу скрипт Jquery, который обрабатывает change
событие в первом поле. Когда пользователь изменяет его, я просто переписываю список параметров во втором поле с помощью Jquery.
Наконец, я просто загрузил поля в нужную мне область.
Используя этот подход, WordPress сохраняет оба значения (город и код) как мету записи. Это может быть get с помощью get_post_meta
функции.