Intereting Posts
добавить разбивку на страницы в пользовательские категории Добавление переменной сеанса и / или cookie на основе выбранного пользователем ввода Предотвращение снятия меток MathML при сохранении сообщения wp_nav_menu не выделяет текущую категорию при просмотре одной записи Ошибки WordPress с обновлением PhP Отображение прямых дочерних элементов текущей пользовательской таксономии в шаблоне taxonomy.php Какова возможность доступа к WP-Admin? Добавить категорию только в том случае, если должность имеет категорию таксономии Откройте кнопку «Просмотр страницы» в редакторе в новой вкладке Пользовательский таксономический JavaScript-код Есть ли простой способ создать страницу индекса ссылок? Пользовательский тип сообщения не работает с возможностями Варианты рендеринга математических уравнений в WP на собственном сервере Минимизация проблем производительности MultiSite Большое количество созданных таблиц Как получить содержимое (с определенным идентификатором) через ajax, нажав тег ссылки

Синхронизация сообщений с одного сайта WordPress на другой

Я хочу добиться следующего:

У меня есть 2 сайта WordPress, размещенных на разных серверах. Назовем A в качестве сайта-отправителя и B в качестве сайта-получателя. Всякий раз, когда я добавляю / обновляю / удаляю любую запись в A, ее следует отражать, так как она находится в B. Не только данные для публикации, но и таксономии и настраиваемые поля также должны быть правильно обновлены в B.

Я проверил API-интерфейс WordPress REST, но я не предпочитаю его, так как он просто поддерживает JSON-канал для A, для которого я могу отправить запрос на pull от B. Это прекрасно, когда сообщения вытягиваются, но не подходят для обновления и удаления. Кроме того, предположим, если сегодня есть 10 блогов, завтра может быть 100 блогов и так далее. Так, по моему пониманию, это не подходит для моего требования.

Другой подход, с которым я, вероятно, хочу пойти, – это добавить функциональность в A для отправки удаленного запроса в B и B, чтобы иметь готовые конечные точки.

Например, если я создаю конечную точку на сайте B, скажите «update_post» и отправьте запрос от A на крючок. Как и в случае сохранения post post, отправьте запрос на конечную точку «update_post», доступную на B, а затем B создаст сообщение с данными, полученными от A. Идентификатор сообщения будет отличаться от B, чем A для этого сообщения, поэтому я могу сохраните идентификатор, полученный из A в метатете сообщения, созданной в B, а затем на основе этих отношений, в будущем выполните действия, такие как update, delete и т. д. При обновлении я также должен заботиться о postmeta, категории / тегах, улучшенных обновлениях изображений.

На данный момент я хочу создать конечные точки –

Если я создаю конечную точку, например http://example.com/insert_post, тогда мне нужно создать внешний PHP-файл, в котором функции WordPress недоступны, и я думаю, что использование wp-load.php для загрузки WordPress – это не очень хорошая идея , Итак, я хочу достичь этого только в WordPress.

Я исследовал и нашел эту функцию http://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint . У меня также есть много статей, касающихся этого, но во всех местах, я вижу, они говорят, что мы можем создать конечную точку для публикации, страниц, комментариев и т. Д. В формате json. Я не уверен, насколько он может быть полезен в моем сценарии. Я просто хочу этого –

  1. Создание пользовательской конечной точки
  2. Обеспечьте функциональность WordPress надлежащим образом

Любая помощь будет принята с благодарностью. Заранее спасибо !!!

Solutions Collecting From Web of "Синхронизация сообщений с одного сайта WordPress на другой"

Вы пробовали codex.wordpress.org/XML-RPC_Support.

Этот код работает в сочетании с библиотекой IXR, найденной в incutio :

 include('IXR_Library.php'); $usr = 'theusername'; $pwd = 'thepassword'; $xmlrpc = 'http://not-therealurl.com/xmlrpc.php'; $client = new IXR_Client($xmlrpc); $client -> debug = true; //optional but useful $params = array( 'post_type' => 'post', 'post_status' => 'draft', 'post_title' => 'Test Post', 'post_author' => 4, 'post_excerpt' => 'This is my test excerpt', 'post_content' => 'This is my test post. Now its longer than the excerpt.' ); $res = $client -> query('wp.newPost',1, $usr, $pwd, $params); в include('IXR_Library.php'); $usr = 'theusername'; $pwd = 'thepassword'; $xmlrpc = 'http://not-therealurl.com/xmlrpc.php'; $client = new IXR_Client($xmlrpc); $client -> debug = true; //optional but useful $params = array( 'post_type' => 'post', 'post_status' => 'draft', 'post_title' => 'Test Post', 'post_author' => 4, 'post_excerpt' => 'This is my test excerpt', 'post_content' => 'This is my test post. Now its longer than the excerpt.' ); $res = $client -> query('wp.newPost',1, $usr, $pwd, $params);