Intereting Posts
Поиск по идентификатору приложения Весь контент удален, когда WP был переустановлен на другой машине jQuery datepicker не отображается в меню администратора Будет ли post_exists работать для проектов сообщений? Сделать работу с короткими кодами с вложенными двойными кавычками Выдержки автоматически удаляют пространство абзаца Использование короткого кода в файле шаблона Добавить класс в before_widget из пользовательского виджета советы по созданию запроса связанных должностей, такого как тот, который используется в stackexchange Как мы подсчитываем пользовательские статьи сообщений $ wpdb-> get_row () возвращает только одну строку? Нужна помощь Определение, где происходит ошибка заголовка Экспорт таблицы wordpress в Excel Чрезвычайно медленный pageload для длинного сообщения при использовании the_content? Функция удаления сообщения, это дети, и это большие дети (на полпути уже есть)

XML-RPC и post_date

Я пытаюсь установить post_date через XML-RPC и продолжать получать сообщение о том, что XML не отформатирован должным образом. Код выглядит примерно так:

$post = get_post( $post_id ); $response = $client->query( 'wp.editPost', array( 0, $user, $pw, array( 'post_date' => $post->post_date ) ) ); 

Я делаю то же самое с wp.newPost . Я знаю, что дата должна быть отформатирована ISO8601, но мне просто не удастся правильно ее форматировать.

Здесь есть пара вопросов. Прежде всего, wp.editPost принимает четвертый параметр перед содержимым struct -> идентификатор сообщения, которое вы пытаетесь отредактировать (должно быть целочисленным).

Во-вторых, вы передаете строку для post_date , поэтому клиент автоматически преобразует ее в <string> перед отправкой на сервер … К сожалению, сервер ожидает <dateTime.iso8601> .

Вы можете исправить это, IXR_Date дату строки и передав экземпляр класса IXR_Date . Клиент правильно проанализирует его, и сервер будет реагировать соответствующим образом. Я протестировал следующий сценарий на своем собственном сервере:

 $date = new IXR_Date( strtotime( $post->post_date ) ); // Parse the date to an IXR_Date object. $response = $client->query( 'wp.editPost', array( 0, $user, $pwd, $post_id, array( 'post_date' => $date ) ) );