Получить значение атрибута из объекта объявления
Объект объявления наследуется от объекта записи. Поэтому ID объявления можно получить стандартно:
$post->ID
А далее, в зависимости от вида атрибута, применяем два подхода. В следующих примерах, slug атрибута «animal».
Множественный атрибут
То есть, набор чекбоксов или select. Такой атрибут реализован как таксономия. Поэтому находим его так:
$animals = get_the_terms( $post->ID, 'hp_listing_animal' );
$animal = $animals[0]->name; // Имя первого, как пример
Одиночный атрибут
Это может быть текстовое поле. Значение атрибута находится внутри объекта под защитой, а для его получения предусмотрен геттер get_{attr_name}. Вот пример для атрибута «animal»:
$listing = \HivePress\Models\Listing::query()->get_by_id($post->ID);
$animal = $listing->get_animal();
Вставить значение атрибута в карточку объявления
add_filter(
'hivepress/v1/templates/listing_view_page/blocks',
function( $blocks, $template ) {
$listing = $template->get_context( 'listing' );
if ( $listing ) {
$blocks = hivepress()->helper->merge_trees(
[ 'blocks' => $blocks ],
[
'blocks' => [
'listing_actions_primary' => [
'blocks' => [
'animal' => [
'type' => 'content',
'content' => '<div>' . esc_attr( $listing->get_animal() ) . '</div>',
'_order' => 5, // выше-ниже в блоке actions_primary
],
],
],
],
]
)['blocks'];
}
return $blocks;
},
1000,
2
);