Нужна определенная структура в WordPress, нужно связать посты, как это сделать?

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

Не могу сделать структуру чтобы была возможно создания страницы с названием компании и все новости и гайды и т.д.
Сортировались под указаную компанию, например какая-то функция которая позволит закреплять пост за определенной компанией.

Возможно на скриншотах будет более понятно что я имеею введу))

Нужна определенная структура в WordPress, нужно связать посты, как это сделать?

Нужна определенная структура в WordPress, нужно связать посты, как это сделать?

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

Для сложной структуры используются кастомные сущности - посты, таксономии, поля.
Для связи же между сущностями можно использовать плагины типа relationships.
Например у мощного плагина MetaBox для управления кастомными сущностями есть дополнение для этого

Аналогичный функционал есть и у более популярного ACF

  • Можно вместо ACF юзать полностью бесплатный carbonfields.net
  • Роман Страх, есть десятки подобных плагинов. Но у всех свои нюансы и возможности. А можно и вообще обойтись без универсальных плагинов и написать свой по конкретную задачу. Это не так сложно.
Нужно решить такую задачу?

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

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

Для структуры “компания → все новости, гайды и материалы этой компании” в WordPress не нужно придумывать сложную систему с ручными ссылками. Нормальный вариант — создать отдельную сущность “Компании” и связать с ней записи.

Есть три рабочих подхода:

  • таксономия “Компании” — если компания нужна как рубрика/фильтр;
  • CPT “Компании” + relationship field — если у компании должна быть полноценная страница с описанием, логотипом, контактами;
  • обычные страницы-компании + ACF relationship — если структура небольшая.

Если компания — это справочник, лучше CPT. Например, регистрируете company, а у новостей/гайдов добавляете поле “Компания” через ACF Relationship/Post Object. Тогда у каждой компании будет отдельная страница, а внутри можно вывести связанные материалы.

Пример выборки записей, связанных с компанией через meta field:

$company_id = get_the_ID();
 
$materials = new WP_Query([
    'post_type' => ['post', 'guide'],
    'posts_per_page' => 10,
    'meta_query' => [
        [
            'key' => 'company',
            'value' => '"' . $company_id . '"',
            'compare' => 'LIKE',
        ],
    ],
]);

$company_id = get_the_ID(); $materials = new WP_Query([ 'post_type' => ['post', 'guide'], 'posts_per_page' => 10, 'meta_query' => [ [ 'key' => 'company', 'value' => '"' . $company_id . '"', 'compare' => 'LIKE', ], ], ]);

Если поле хранит один ID, а не массив, запрос будет проще:

'meta_key' => 'company',
'meta_value' => $company_id,

'meta_key' => 'company', 'meta_value' => $company_id,

Если компании нужны только как фильтр без отдельной сложной страницы, создайте таксономию company и назначайте её записям. Тогда архив термина автоматически станет страницей компании со всеми материалами.

Для SEO и удобства чаще лучше CPT “Компании”: можно задать H1, описание, логотип, блоки, FAQ, связанные материалы, а новости и гайды подтягивать автоматически.

Итог: не связывайте посты вручную ссылками. Сделайте “Компания” как CPT или таксономию и привязывайте материалы через term или relationship field. Тогда сортировка, фильтры, хлебные крошки и шаблоны будут управляемыми.

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

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

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

комментарий

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

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