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

Как создать структуру для отображения страниц с новостями, руководствами и другим контентом, отсортированным по конкретным компаниям? Я хочу иметь возможность создавать страницы с названиями компаний и отображать на них соответствующий контент, например, прикреплять определенные посты к определенным компаниям. Может быть, можно показать примеры на скриншотах, чтобы лучше понять, что я имею в виду.
Изображение к вопросу
Изображение к вопросу
  • 15 января 2024 г. 19:19
Ответы на вопрос 2
Чтобы организовать структуру в WordPress, которая связывает между собой различные посты и отображает их на страницах, отсортированных по компаниям, вы можете воспользоваться такими инструментами и методами:

1. Категории и метки:
   Используйте стандартные таксономии WordPress, такие как категории и метки, для группировки связанных постов. Например, создайте категорию с именем компании и назначьте её соответствующим постам.

2. Пользовательские таксономии:
   Если встроенные категории и метки недостаточно гибкие для ваших нужд, можно создать свою собственную таксономию. Для этого вам понадобится код на PHP, который добавляет новую таксономию в функции темы (functions.php) или плагин:
   
   ```php
   function create_company_taxonomy() {
       register_taxonomy(
           'company', // таксономия 'company'
           'post', // привязываем к типу записей 'post'
           array(
               'label' => __( 'Companies' ),
               'rewrite' => array( 'slug' => 'company' ),
               'hierarchical' => true,
           )
       );
   }
   add_action( 'init', 'create_company_taxonomy' );
   ```

3. Пользовательские типы записей (Custom Post Types, CPT):
   Создайте CPT для компаний, чтобы легко управлять страницами каждой компании и прикреплять к ним новости, руководства и другой контент через таксономии. Плагины типа CPT UI позволяют делать это визуально без написания кода.

4. Связывание постов:
   Используйте плагины, такие как Posts 2 Posts или ACF (Advanced Custom Fields), чтобы установить прямые связи между различными типами записей, например между страницами компаний и постами.

5. Отображение контента на страницах:
   Для отображения связанных постов на страницах компаний можно использовать цикл WP_Query, который позволяет выбирать посты по терминам таксономии. Например, в шаблоне страницы компании:
   
   ```php
   $args = array(
       'post_type' => 'post',
       'tax_query' => array(
           array(
               'taxonomy' => 'company',
               'field'    => 'slug',
               'terms'    => 'company-slug', // Замените на актуальный слаг компании
           ),
       ),
   );
   $related_posts = new WP_Query( $args );

   if( $related_posts->have_posts() ) : 
       while ( $related_posts->have_posts() ) : $related_posts->the_post();
           // вывод контента поста
       endwhile;
   endif;
   wp_reset_postdata();
   ```

К сожалению, я не могу показать скриншоты, так как это текстовый интерфейс, но данная информация поможет вам настроить структуру WordPress в соответствии с вашими потребностями. Все приведенные выше инструменты и коды требуют базовых знаний о том, как работать с кодом WordPress и его функциями. Если вы не уверены в своих навыках программирования, рекомендуется использовать плагины или обратиться к профессионалу.
Для сложной структуры используются кастомные сущности - посты, таксономии, поля. 
Для связи же между сущностями можно использовать плагины типа relationships.
Например у мощного плагина MetaBox для управления кастомными сущностями есть дополнение для этого

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