Intereting Posts
Получите изображение из медиа-библиотеки. Борьба с кодом? настраиваемый сортируемый столбец Является ли изменение должности из категории в большом блоге хорошей практикой? Как включить JS-файл в эту тему? Почему $ wp_query ничего не получает? Устранение неполадок правильного родительского меню с классами wp_nav_menu при просмотре «отдельных сообщений» Как изменить тему «Двадцать десять», чтобы удалить окно комментариев, когда страница использует определенный шаблон? разница между add_options и register_setting Как изменить путь к дочерней странице? Как реализовать различные цветовые схемы в ваших темах Ошибка захвата и отображения при действии save_post. Страница архива WordPress, показывающая 404 Ошибка Удаление настраиваемого поля поля Отображение страницы 1-го сообщения из диапазона таможенного налога? wp_editor в передней части не работает

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 ) ) );