Как получить атрибуты объявления в плагине HivePress?

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

Есть плагин для WordPress под названием HivePress.

Мне нужно получить атрибуты кастомного поста "hp_listing"
Тип поля "радио кнопки" для выбора.

Почему то там где просто текст или один checkbox поля выводятся. А там где select или radio кнопки, нет.

Получаю мета данные через:
get_post_meta($post_id, "hp_rooms")

Может кто сталкивался с таким? Что не все поля выводятся.

Дополнительно:

Как получить атрибуты объявления в плагине HivePress?

Дмитрий Казаринов @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 ); });

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

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

Заказать помощь
Лучший ответ
1
Frontend-редакция Ответ

В 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);
    }
}

$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>';
}

$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>';

$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.

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

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

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

комментарий

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

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