Shing
@Shing

Как лучше организовать на Wordpress сайте подмешивание, вывод постов из других вордпресс сайтов?

Есть N сайтов на wordpress.
Как лучше организовать на вордпресс сайте подмешивание, вывод постов из других вордпресс сайтов.
Например мне нужно подмешивать посты из одной категории на разных wp сайтах и т.п.

Или проще делать multisite? То есть на одной базе все N сайтов поднимать.
  • Вопрос задан
  • 2825 просмотров
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Читать посты с других WP сайтов можно по RSS, а еще лучше - установить на всех сайтах JSON REST API. Тогда можно элементарно получать конкретные посты, целые архивы в JSON.

Что касается подмешивания - тут есть нюансы. Само подмешивание сделать не проблема, в свойстве $posts объекта WP_Query хранятся все полученные из базы посты по текущему запросу. Плюс имеем такой же массив или объект, полученный в JSON с других сайтов. Приводим все к одному формату (объект или массив) и перемешиваем, выводим.

Но тут всплывает несколько нюансов:

1. Постраничная навигация будет работать некорректно, либо количество постов на страницах будет всегда больше, чем в настройках (ведь будут родные Х + сторонние У)
2. Автор поста, метаданные (рубрика, метки и т.д.) постов с другого сайта в текущей БД отсутствуют, поэтому эти вещи лучше не выводить или выводить текстом (не ссылками)
3. Еще по мелочам вылезет что-то

Если делать Multisite - это удобнее, комфортнее, приятнее и т.д. Но там эта задача не будет сильно легче. У Multisite общая таблица пользователей, таблицы постов и метаданных - разные, у каждого сайта свои. Да, можно на лету переключаться на другой блог, запрашивать отттуда посты, возвращаться на текущий и перемешивать. Это вместо считывания постов с другого сайта по RSS или JSON. Но дальше те же нюансы. Есть решения по синхронизации метаданных (категорий, меток) между сайтами сети, но это все уже усложнение, не уверен, что это нужно в этом конкретном случае.
Ответ написан
Комментировать
@mr_ko
Javascript, Node.js. React.js, Vue.js, Wordpress
Есть плагин https://wordpress.org/plugins/hyperdb/ не пользовал, но вроди то что нужно. Можно покопать код и посмотреть как он подключает другую БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы