Как автоматически добавлять карточку риелтора на объявление, которое он выставил?
Нужно сделать так, чтобы в новом объявлении автоматически появлялась карточка и не одинаковая, а заранее разработанная, чтобы сайт сам понимал пользователя, от которого было выставлено объявление, т.е. агента?
Дополнительно:
Вариантов более одного, как создания самой карточки, так и ее вывода.
Ввод:
- Можно сделать кастомный тип записи "агент", идентификатор агента хранить в произвольном поле
- Можно сделать текстовые блоки под вывод через шорткод, закодировав ид агента в имени шорткода
и т.д.
Вывод:
- Можно добавить в шаблон код вывода "карточки".
- Можно добавить html карточки через хук the_content.
- Можно шорткод вставлять прямо в текст объявления, в т.ч. автоматически при создании объявления.
и т.д.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, это делается автоматически. Главное — определить связь между объявлением и агентом. В WordPress есть несколько нормальных вариантов: автор записи, отдельный CPT «Агент», пользователь с ролью «риелтор» или ACF-поле, где выбирается агент.
Если объявление создаёт сам агент как пользователь WordPress, проще всего брать автора записи:
$agent_id = (int) get_post_field('post_author', get_the_ID()); $agent = get_userdata($agent_id);
В шаблоне объявления выводите карточку:
<div class="agent-card"> <div class="agent-card__name"><?php echo esc_html($agent->display_name); ?></div> <div class="agent-card__phone"><?php echo esc_html(get_user_meta($agent_id, 'phone', true)); ?></div> </div>
Если агенты должны иметь отдельные страницы, фото, должность, опыт и список объектов, лучше создать кастомный тип записи
agent, а в объявлении сделать ACF Relationship/Post Object поле «Агент». Тогда одно объявление может быть связано с конкретным агентом независимо от автора записи.Схема через ACF:
agent— карточки риелторов;property— объявления;property_agentв объявлении;Можно добавить карточку через фильтр
the_content, если не хотите править шаблон:add_filter('the_content', function ($content) { if (!is_singular('property')) { return $content; } return $content . render_agent_card(get_the_ID()); });
Но для нормального дизайна лучше всё-таки выводить карточку в шаблоне объявления. Так проще контролировать место, адаптивность, микроразметку и стили.