Intereting Posts
Использовать данные BuddyPress в цикле (mkdir) Можно ли просмотреть предыдущую ревизию? WordPress автоматический логин после регистрации не работает Нормально ли для запланированного сообщения говорить «Пропущенный график», Как изменить контактную информацию в нижней части моей темы Как загрузить последний скрипт jQuery? Сделайте WP не форматированный код, а не вставляйте разрывы строк между тегами Может кто-нибудь объяснить этот медиаэлемент и звуковые теги Как узнать полный путь к шаблону страницы? Как создать автоматически заполненное меню, которое автоматически присваивается местоположению? Как обновить значения Post Meta через систему комментариев Пользовательские поля не отображаются для пользовательских типов сообщений Архив – Показать заголовки за месяц загруженные изображения не собираются / загружают папку Как добавить пользовательскую форму для рассылки новостей для электронной почты Mailchimp AJAX

WordPress как клиент XML-RPC?

Я хочу синхронизировать изменения после публикации на двух сайтах. Испытательная среда, а не производство. Одно направление (сайт А на сайт Б, но не назад).

В основном я редактирую сообщение в своем локальном стеке тестов и тот же пост (часть набора тестовых материалов) на удаленном сервере должен быть обновлен с идентичной копией полученного контента.

Я знаю, что XML-RPC-сервер реализован в WordPress … Но сам WordPress не является клиентом XML-RPC, и я не знаю, как легко было бы превратить его в один (я обычно опасаюсь XML-ничего 🙂

Так что я должен идти с XML-RPC и реализовывать клиентские функции, или это не стоит времени, и я должен создать пользовательскую форму или что-то на удаленном сервере, чтобы поймать изменения?

Solutions Collecting From Web of "WordPress как клиент XML-RPC?"

WordPress уже имеет класс клиента XML-RPC. Он находится в том же файле, что и серверная часть: class-IXR.php находящаяся в wp-includes class-IXR.php .

Следующий код создаст новую запись. Вы можете обернуть это в функцию и прикрепить ее к save_post действия save_post / update_post . Чтобы синхронизировать обе части, вы можете проверить пост-slug или отправить тот же пост-id в сообщение во втором блоге.

 $rpc = new IXR_Client('http://second-blog-domain.tld/path/to/wp/xmlrpc.php'); $post = array( 'title' => 'Post Title', 'categories' => array('Category A', 'Category B'), 'mt_keywords' => 'tagA, tagB, tagC', 'description' => 'Post Content', 'wp_slug' => 'post-slug' ); $params = array( 0, 'username', 'password', $post, 'publish' ); $status = $rpc->query( 'metaWeblog.newPost', $params ); if(!$status) { echo 'Error [' . $rpc->getErrorCode() . ']: ' . $rpc->getErrorMessage(); exit(); }