@ggok

Как скрыть таксономии при добавлении поста?

Здравствуйте.
Есть тип записи + 3 таксономии к нему, каждая таксономия это город и категории к ней
post type - company
taxonomy - moscow
taxonomy - spb
taxonomy - omsk

При добавлении поста выводится 3 таксономии и из них нужно выбрать категории, получается не удобно и не эстетично.
Хочу сделать так: при добавлении поста выбирается город (таксономия) затем выводится список категорий.
Есть про версия acf, пытался с ней играться, но не получается, даже не знаю в каком направлении смотреть. Дайте совет или направьте в нужное русло:) спасибо

5e977ec4c15f7038532497.png
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Вам погомут conditional rules.

Создайте одно поле с выбором таксономий (городов). Это может быть поле типа select, radio, checkbox - зависит от того нужно ли вам выбирать один или несколько городов. В значения этого поля добавьте все ваши города/таксономии. Можно это сделать вручную, а можно программно заполнить из существующих таксономий.

Дальше под каждую таксономию (город) создайте свое поле типа Taxonomy, в котором и будут выбираться термины. Включите в этом поле галочки Create Terms, Save Terms и Load Terms, а также включите Conditional Logic - именно в этом вся магия. Теперь в conditional настройте условие. Вот так это выглядит:

5e9820dca3b3f788190769.jpeg

А вот так это выглядит на странице редактирования записи - по умолчанию город не выбран:

5e9820f420767468763297.jpeg

А если выбрали город - показало поле для выбора категории в этом городе:

5e9821140e5ab394583256.jpeg

Вот вам экспорт этой тестовой группы полей, имопртните себе в ACF и поковыряйте:

[
    {
        "key": "group_5e981df6cbdcc",
        "title": "Taxonomies",
        "fields": [
            {
                "key": "field_5e981e4bb1454",
                "label": "City",
                "name": "taxonomy",
                "type": "checkbox",
                "choices": {
                    "spb": "SPB",
                    "msk": "Moscow",
                    "omsk": "Omsk"
                },
                "layout": "vertical",
                "return_format": "value",
            },
            {
                "key": "field_5e981e18b1453",
                "label": "MSK",
                "name": "term",
                "type": "taxonomy",
                "conditional_logic": [
                    [
                        {
                            "field": "field_5e981e4bb1454",
                            "operator": "==",
                            "value": "msk"
                        }
                    ]
                ],
                "taxonomy": "post_tag",
                "field_type": "checkbox",
                "add_term": 1,
                "save_terms": 1,
                "load_terms": 1,
                "return_format": "id",
                "multiple": 0,
                "allow_null": 0
            }
        ],
        "location": [
            [
                {
                    "param": "post_type",
                    "operator": "==",
                    "value": "post"
                }
            ]
        ],
        "menu_order": 0,
        "position": "side",
        "style": "default",
        "label_placement": "top",
        "instruction_placement": "label",
        "active": true,
    }
]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы