В Wordpress мультисайте возможно ли создать общие посты, чтобы они открывались на поддомене с соответствующей ссылкой?

У меня есть мультисайт на WordPress, посвящённый тематике недвижимости. Основной сайт доступен по адресу www.sitename.ru и охватывает город Москву, тогда как другие города представлены на поддоменах, например, spb.sitename.ru. 

На основном сайте есть разделы: Новости, Блог и Услуги, которые по сути являются общими и одинаковыми для всей сети. Я пробовал использовать функции <b>switch_to_blog()</b> и <b>restore_current_blog()</b>, но это не дало желаемого результата. 

Сейчас ссылки на посты в поддоменах ведут на основной сайт, и я хотел бы, чтобы они открывались как spb.sitename.ru/news/article-name, однако вместо этого происходит перенаправление на sitename.ru/news/article-name. 

Для примера, вот ссылки, чтобы проиллюстрировать проблему: 
<a href="https://www.cian.ru/novosti-tsifry-goda-337937/" rel="nofollow">https://www.cian.ru/novosti-tsifry-goda-337937/</a> 
и 
<a href="https://spb.cian.ru/novosti-tsifry-goda-337937/" rel="nofollow">https://spb.cian.ru/novosti-tsifry-goda-337937/</a>. 

Я буду признателен за любую полезную информацию, например, ссылку на статью или форум, так как сам уже целый день искал, но в основном попадаются материалы о том, что такое мультисайт, его плюсы и минусы. Поэтому ещё раз reiterate: буду благодарен за любую помощь. 

С наступившими и предстоящими праздниками!
  • 5 января 2025 г. 15:24
Ответы на вопрос 2
Создание общих постов для мультисайта 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 для более гибкого управления контентом.

Если вам необходимо больше информации или помощи по конкретным шагам, не стесняйтесь задавать вопросы! С праздниками вас!
Мультисайт - это сеть сайтов. Т.е. практически отдельные сайты, каждый со своим контетом , плагинами, темой настройками и пр. 
Для геотаргетинга это плохое решение, тк нужно всё копировать и настраивать на каждый сайта. С этим могут помочь разного рода плагины, но в целом это неправильный выбор решения.

Для геотаргетинга стоит использовать другие решения. Специальные, для этого и созданные.
К сож для рунета готовых решений можно сказать нет. А те что есть - малофункциональны. Поэтому как правило пишется своё под конкретные задачи.
Похожие вопросы