Как правильно создавать атрибуты в теме hovepress для wordpress?

Ссылка скопирована
1 ответ

Приветствую, прошу дать наставление как правильно создавать программным способом атрибуты для объявлений?!
можно где-то карту получить, что куда должно записываться?

У меня вот такие входящие данные, все никак логику не могу понять, что хуками что классами создается
что от чего зависит? если не сложно, на пальцах объясните, что мне нужно чтобы все добавилось органично.
Мне бы понять где чтьо использовать и какие зависимости

вот документация
api - https://bump.sh/hivepress/doc/rest-api
hook - https://hivepress.github.io/hook-reference/
code-reference - https://hivepress.github.io/code-reference/

{                     "id": 4370,                     "name": "Corps material",                     "value": [                         "ads-пластик",                         "пластик",                         "Прочный пластик"                     ]                 },                 {                     "id": 5023,                     "name": "Model",                     "value": [                         "видеокамера",                         "камера наблюдения",                         "с функцией ночного видения"                     ]                 },

{ "id": 4370, "name": "Corps material", "value": [ "ads-пластик", "пластик", "Прочный пластик" ] }, { "id": 5023, "name": "Model", "value": [ "видеокамера", "камера наблюдения", "с функцией ночного видения" ] },

Дополнительные вопросы

"Атрибуты" не имеют отношения к теме и создаются для сущностей (каких-то "объявлений" в твоём случае).
В зависимости от задач для атрибутов используются (на выбор или в сочетании): произвольные поля, кастомные таксономии или даже кастомные типы контента.

Ответы:

Для начала выясни, как сделаны аттрибуты в hivepress - кастомные поля или термы (таксономии). Например, в woo это термы. И значит когда юзаешь wp_insert_post, нужно юзать tax_input (https://developer.wordpress.org/reference/function...)

Если нужно просто заполнить таксономии без постов, то вот пример https://zerowp.com/programmatically-insert-taxonom...

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
2
Кирилл JS Ответ

В HivePress атрибуты лучше создавать не «куда-то в базу», а через его модели/API, потому что атрибут — это не просто одна строка. У него есть тип поля, область применения, настройки поиска/фильтрации, отображение, возможные варианты значений и связь с типом сущности. Если записать только часть данных, атрибут появится криво или не будет работать в фильтрах.

На пальцах логика такая:

  • атрибут описывает поле объявления;
  • тип атрибута определяет, как вводить и хранить значение;
  • настройки отображения определяют, где оно видно;
  • настройки поиска определяют, участвует ли поле в фильтрах;
  • значение атрибута у конкретного объявления хранится отдельно.

Если нужно массово создать атрибуты программно, сначала создайте один атрибут вручную в админке, потом посмотрите, какие записи и meta появились в базе. Это даст карту конкретно вашей версии HivePress. После этого уже можно повторять структуру кодом.

Общий порядок:

  1. Создать сам атрибут с нужным названием и slug.
  2. Указать тип: text, select, checkbox, number и т.п.
  3. Задать области отображения: карточка, single, форма.
  4. Если это select/radio, создать варианты значений.
  5. Проверить, что атрибут появился в форме добавления объявления.
  6. Проверить сохранение значения у объявления.

Я бы не советовал начинать с SQL. Лучше использовать API HivePress, если он доступен в вашей версии. Если документация неполная, безопаснее сделать импорт через админские функции/модели плагина, а не через прямые insert в таблицы WordPress.

И главное: разделите создание атрибутов и заполнение значений. Атрибут — это описание поля. Значение — это данные конкретного объявления. Когда эти две части смешивают, обычно и возникает путаница «что от чего зависит».

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно