Как сделать разные страницы при переходе со связанных между собой кастомных постов?

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

Поясню детально, прошу ознакомиться!
1) Было создано два кастомных типов записи(недвижимости и городов)
2) При помощи статьи ниже(см. ответ), я связал их между собой так, чтобы при создании записи недвижимости, можно было выбрать город из записей городов

Статья:   https://wp-kama.ru/question/kak-uvyazat-posty-iz-dvuh-proizvolnyh-tipov-zapisej

Статья: https://wp-kama.ru/question/kak-uvyazat-posty-iz-dvuh-proizvolnyh-tipov-zapisej

3) Вывод сделал функцией get_posts. На главной странице выводятся два типа поста

При нажатии на ссылку записи недвижимость, меня перекидывает на страницу одного товара. Использую шаблон single-недвижимость.php

ВОПРОС
Как сделать так, чтобы у городов была такая ссылка, при клике на которую меня переводило на страницу со всей недвижимостью выбранного города? И какой шаблон использовать?

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

Рабочая версия
Написать в single-post-type

$city_id = $post->ID;
$real_estates = get_posts([
'post_type' => 'real_estate',
'post_parent' => $city_id,
'posts_per_page' => -1,
'orderby' => 'post_title',
'order' => 'ASC'
]);

Ответы:

Как сделать так, чтобы у городов была такая ссылка, при клике на которую меня переводило на страницу со всей недвижимостью выбранного города?

Разумеется подкладывать ссылку на нужную рубрику (таксономию)

И какой шаблон использовать?

Архивный.

1) Было создано два кастомных типов записи(недвижимости и городов)

Скорее всего "города" нужно было делать таксономией к недвижимости.

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

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

Заказать помощь
Лучший ответ
1
Игорь NetOps Ответ

Связь между двумя custom post type не делает “разные страницы перехода” автоматически. Если у вас есть CPT “города” и CPT “недвижимость”, а объект недвижимости связан с городом через поле, WordPress всё равно открывает каждый тип записи по его собственному permalink и собственному single-шаблону.

Правильная архитектура обычно такая:

  • single-city.php — страница города;
  • single-realty.php — страница объекта недвижимости;
  • на странице города выводятся связанные объекты через WP_Query;
  • на странице объекта выводится ссылка назад на город.

Пример выборки объектов на странице города:

$city_id = get_the_ID();
 
$objects = new WP_Query([
    'post_type' => 'realty',
    'posts_per_page' => 12,
    'meta_query' => [
        [
            'key' => 'city',
            'value' => $city_id,
            'compare' => '=',
        ],
    ],
]);

$city_id = get_the_ID(); $objects = new WP_Query([ 'post_type' => 'realty', 'posts_per_page' => 12, 'meta_query' => [ [ 'key' => 'city', 'value' => $city_id, 'compare' => '=', ], ], ]);

Если нужно, чтобы URL объекта включал город, например /moscow/flat-1/, это уже отдельная задача: фильтр post_type_link, rewrite rules и обработка запроса. Простая связь через ACF или meta этого не делает.

Безопаснее оставить URL такими:

/cities/moscow/
/realty/flat-1/

/cities/moscow/ /realty/flat-1/

Так меньше риска получить 404, дубли и конфликт slug. Для SEO это нормально, если хлебные крошки и внутренняя перелинковка показывают связь “город → объект”.

Если сейчас после перехода открывается не та страница или 404, проверьте: slug CPT, наличие single-{post_type}.php, пересохранение permalinks и конфликт страниц с такими же slug.

Итог: делайте разные шаблоны для разных CPT и выводите связанные записи запросом. Вложенные URL по связи включайте только если готовы отдельно прописывать rewrite-логику.

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

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

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

комментарий

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

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