Создание общих постов для мультисайта WordPress с использованием поддоменов может быть непростой задачей, так как стандартные механизмы WordPress не предусматривают возможности прямого доступа к контенту из других сайтов в мультисайте. Однако, есть несколько подходов, которые могут помочь вам в реализации вашей идеи.
### Варианты решения:
1. **Использование плагина для мультисайта**:
- Существует несколько плагинов, которые могут помочь синхронизировать контент между сайтами в мультисайте. Один из популярных плагинов — [Multisite Content Copier](https://wordpress.org/plugins/multisite-content-copier/), который позволяет копировать контент из одного блога в другой на мультисайте. Однако, это требует ручного ввода или периодической синхронизации.
2. **Настройка общего контента через пользовательские типы записей**:
- Создайте пользовательские типы записей, которые будут общими для всех сайтов вашей сети. Вы можете реализовать это с помощью соответствующих функций в вашем плагине или теме. Затем используйте `switch_to_blog()` для получения данных о записях.
3. **Перенаправление и настройки ссылок**:
- Чтобы избежать перенаправления на основной сайт, убедитесь, что вы правильно настроили постоянные ссылки на ваших поддоменах. Проверьте, что структура постоянной ссылки на поддоменах использует правильные правила. Вы можете использовать фильтры `post_link` и `post_type_link` для создания ссылок так, чтобы они генерировались правильно.
4. **Создание кастомных шаблонов**:
- Разработайте кастомные шаблоны для ваших сайтов, которые будут показывать общий контент и использовать функции API WordPress для получения данных.
### Пример кода
Если вы хотите получить доступ к контенту из другого сайта в мультисайте, вы можете использовать такой код:
```php
$blog_id = 2; // ID вашего блога, откуда нужно получить посты
switch_to_blog($blog_id);
// Получение постов
$posts = get_posts(array('post_type' => 'news', 'numberposts' => 10));
foreach ($posts as $post) {
setup_postdata($post);
// Отображение поста
echo '<h2>' . get_the_title() . '</h2>';
echo '<a href="' . get_permalink() . '">Читать далее</a>';
}
restore_current_blog();
```
Этот код позволит вам получить посты с другого блога, но не забудьте о производительности, так как вызовы к другим блогам могут замедлить сайт.
### Итог
Работа с мультисайтом WordPress требует понимания его архитектуры и структуры. Если вам необходимо создать более сложные функциональные решения или поддерживать большую и многообразную сеть сайтов, рекомендуется использовать плагины, такие как Advanced Custom Fields и WordPress REST API для более гибкого управления контентом.
Если вам необходимо больше информации или помощи по конкретным шагам, не стесняйтесь задавать вопросы! С праздниками вас!