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

1) Я создал два кастомных типа записи для недвижимости и городов.
2) Я использовал данную статью (см. ссылку ниже), чтобы связать их между собой, позволяя выбирать город из записей городов при создании записи недвижимости: https://wp-kama.ru/question/kak-uvyazat-posty-iz-dvuh-proizvolnyh-tipov-zapisej
3) Я использую функцию get_posts для вывода двух типов постов на главной странице.

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

Как создать ссылку для городов, чтобы при клике на нее меня переводило на страницу со всей недвижимостью выбранного города, и какой шаблон следует использовать?
  • 26 января 2024 г. 22:49
Ответы на вопрос 2
Для реализации такого поведения в WordPress вам необходимо выполнить несколько действий:

1. **Создание архивной страницы для городов:**
   - Убедитесь, что для кастомного типа записей "города" включена поддержка архивов. Это можно указать при регистрации типа записи с помощью параметра `'has_archive' => true` в функции `register_post_type()`.
   - Создайте шаблон `archive-город.php` (где `город` - имя вашего кастомного типа для городов). WordPress будет использовать этот шаблон для отображения архива постов города.

2. **Создание кастомной таксономии для связи недвижимости и городов:**
   - Вы можете использовать таксономии для организации связи между двумя типами постов. Например, создайте таксономию `города` в коде вашей темы при помощи функции `register_taxonomy()` и свяжите её с кастомным типом постов "недвижимость".

3. **Добавление метабоксов для выбора города:**
   - Как вы уже упомянули, добавляете возможность выбора города при создании или редактировании недвижимости, чтобы у каждой недвижимости был указан конкретный город.

4. **Генерация ссылки для страницы города:**
   - Когда вы добавляете запись недвижимости, привязываете её к городу, используя таксономию. Это позволяет выводить на странице недвижимости ссылки на страницу города.

5. **Создание страницы всех недвижимостей для города:**
   - На странице архива `archive-город.php` используйте WP_Query или get_posts, чтобы выбрать все посты типа "недвижимость", которые связаны с текущим городом. Для фильтрации можно использовать параметр таксономии в вашем запросе.

6. **Отображение связанных постов:**
   - На странице города вы можете использовать цикл WordPress для отображения всех записей недвижимости, относящихся к данному городу.

Пример кода для архивного шаблона `archive-город.php`, который выводит все связанные посты недвижимости:

```php
<?php
get_header(); 

// Предполагаем, что ваша таксономия называется 'города_tax', а тип поста - 'недвижимость'

if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        // Выводим информацию о городе
        the_title();
        the_content();
    endwhile;

    // Теперь выведем недвижимость в этом городе
    $term = get_queried_object();

    $args = array(
        'post_type' => 'недвижимость',
        'tax_query' => array(
            array(
                'taxonomy' => 'города_tax',
                'field'    => 'slug',
                'terms'    => $term->slug,
            ),
        ),
    );
    $недвижимость_query = new WP_Query( $args );
    
    if ( $недвижимость_query->have_posts() ) : 
        while ( $недвижимость_query->have_posts() ) : $недвижимость_query->the_post();
            // Выводим информацию о недвижимости
            the_title();
            // Вывод
Как сделать так, чтобы у городов была такая ссылка, при клике на которую меня переводило на страницу со всей недвижимостью выбранного города?

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

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

Архивный .

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

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