Intereting Posts
Что еще я могу сделать, чтобы ускорить загрузку страницы WordPress? Страница продукта Woocommerce редактировать «из» текста Добавить ввод значка данных в пользовательские ссылки WordPress Изменить URL-адрес на сообщения, если у них есть только таможенный налог удалить sanitize_title () для register_taxonomy () если учетная запись добавляет плату в общую сумму WP-PageNavi не работает на шаблоне пользовательской страницы Нужно ли мне повторно импортировать Susy для работы с ним в дочерней теме? Как группировать сообщения по месяцам и добавлять разбивку на страницы? Как перенести один домен в другой домен без потери параметров темы (customizer)? страница категории для настраиваемого типа сообщения Добавление строки текста в php-код Перечисление категорий и подкатегорий сообщения Включая базы данных, созданные в поиске по сайту edit_comment_link не отображается для автора комментариев

Предупреждение REST при публикации или обновлении публикации в WordPress

У меня есть пользовательское приложение PHP и экземпляр WordPress, работающий как 2 полностью отдельных кодовых файла на одном сервере. Я хотел бы, чтобы мое пользовательское приложение PHP могло потреблять контент из экземпляра WordPress, когда он был опубликован или обновлен.

Я использую отличный WP API для извлечения JSON-кодированных сообщений WordPress из моего экземпляра WordPress. Этот плагин может извлекать все сообщения или отдельную запись (указанную id).

В настоящее время это связано с активным опросом экземпляра WordPress для всех сообщений, а затем выяснением, какие новые или были изменены, что не является идеальным.

Я бы хотел, чтобы WordPress уведомлял мое приложение PHP, когда новое сообщение создается или обновляется. Я понимаю, что для WordPress существует множество плагинов для уведомлений по электронной почте (лучшим из них является « Лучшее уведомление для WordPress» ). Но мне не нужны накладные расходы на запуск SMTP-сервера и анализ содержимого электронной почты.

Я искал решение, которое просто использует REST для отправки запроса POST или GET моему приложению, передавая идентификатор (недавно опубликованного или обновленного) сообщения WordPress. Я не знаю каких-либо встроенных функций WordPress или плагинов, которые существуют для этого.

Solutions Collecting From Web of "Предупреждение REST при публикации или обновлении публикации в WordPress"

Используйте HTTP API для отправки «ping» в действие wp_insert_post , которое запускается всякий раз, когда создается или обновляется сообщение:

 /** * @param int $post_id The ID of the post. * @param WP_Post $post The post object. * @param bool $update True if the post already exists and is being updated */ function wpse_185340_post_ping( $post_id, $post, $update ) { if ( $post->post_status === 'publish' ) { // Only fire when published wp_remote_post( 'http://example.com/application/notify', array( // https://codex.wordpress.org/HTTP_API 'blocking' => false, // If you don't need to know the response, disable blocking for an "async" request 'body' => array( 'post_id' => $post_id, 'post' => json_encode( $post ), 'update' => ( int ) $update, // or whatever ) ) ); } } add_action( 'wp_insert_post', 'wpse_185340_post_ping', 10, 3 ); 

Вы можете использовать WP's save_post action hook с расширением плагина WP-API .