Как получить атрибуты объявления в плагине HivePress?
Есть плагин для WordPress под названием HivePress.
Мне нужно получить атрибуты кастомного поста "hp_listing"
Тип поля "радио кнопки" для выбора.
Почему то там где просто текст или один checkbox поля выводятся. А там где select или radio кнопки, нет.
Получаю мета данные через:
get_post_meta($post_id, "hp_rooms")
Может кто сталкивался с таким? Что не все поля выводятся.
Дополнительно:
Дмитрий Казаринов @kazarin0v Автор вопроса Разработчик сайтов WordPress Самое главное вызвать на action, иначе работать не будет
add_action( 'wp_footer', function() { $attributes = get_the_terms( $post_id, 'hp_listing_attribute_name' ); print_r( $attributes ); }); |
add_action( 'wp_footer', function() { $attributes = get_the_terms( $post_id, 'hp_listing_attribute_name' ); print_r( $attributes ); });
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

В HivePress не все атрибуты объявления хранятся как простые post meta. Текстовые поля действительно могут доставаться через
get_post_meta($post_id, 'hp_rooms', true), а варианты select/radio часто хранятся как термины отдельной таксономии. Поэтому meta-запрос возвращает пусто, хотя в админке значение выбрано.Для атрибута с именем
roomsсначала проверьте, есть ли таксономия видаhp_listing_roomsили похожая. Получать значение нужно черезget_the_terms():$post_id = get_the_ID(); $terms = get_the_terms($post_id, 'hp_listing_rooms'); if (!is_wp_error($terms) && !empty($terms)) { foreach ($terms as $term) { echo esc_html($term->name); } }
Если точное имя таксономии неизвестно, временно выведите все таксономии объявления:
$taxonomies = get_object_taxonomies('hp_listing', 'objects'); foreach ($taxonomies as $taxonomy) { echo esc_html($taxonomy->name) . '<br>'; }
А затем проверьте термы конкретного объявления:
$all_terms = wp_get_object_terms($post_id, array_keys($taxonomies)); echo '<pre>'; print_r($all_terms); echo '</pre>';
Также учитывайте момент выполнения кода. Если вы вызываете получение атрибутов слишком рано, глобальный post ещё может быть не тем объявлением. В шаблоне объявления используйте явный ID или запускайте код там, где уже известен текущий listing.
Итог: checkbox/text чаще можно читать из meta, а select/radio в HivePress часто надо читать из taxonomy terms. Уверенность жёлтая, потому что точное имя таксономии зависит от настройки конкретного атрибута в HivePress.