Как я могу внедрить систему уведомлений в WordPress?

Я должен отправить Облачное сообщение Firebase (FCM) в приложение для Android, когда новое сообщение вставлено в блог WordPress, я уже поместил свой код в wp_includes post.php, но это не сработает, потому что в будущем будет обновлено WP (будет заменен post.php, и я не смогу вставить свой код каждый раз), поэтому я должен поставить свой код (он работает без проблем) в этом) в другом месте .. где я могу положить свой файл ?? Я должен написать плагин? Можно написать плагин, который переопределяет функцию? в этом случае wp_insert_post? И если это возможно, где я могу получить данные для отправки через FCM? Можете ли вы сделать пример или дать ссылку на хороший пример кода, если это возможно?

Теперь мой код находится внутри функции wp_insert_post, поэтому он выполняется, когда вы нажимаете кнопку «опубликовать» в новой области публикации.

Ответы и комментарии:

Вы хотели бы создать плагин и затем подключить его к функции в ядре, а не переопределять его.
Создан 21-03-2017 12:15 Cedon

Это выглядит как подходящее решение, но я бы не стал помещать это в файл functions.php темы ... изменение активной темы, и вы потеряете функциональность. Плюс эта функциональность не имеет ничего общего с дизайном сайта, поэтому она не должна входить в файлы вашей темы. Скорее создайте плагин, это действительно легко сделать, вам просто нужен php-файл с правильным заголовком, а затем поместите этот файл в папку wp-content / plugins. Попробуйте найти плагин hello dolly для требуемого заголовка.
Создан 22-03-2017 04:33 bynicolas

Если вы посмотрите определение wp_insert_post (), вы увидите
do_action ('wp_insert_post', $ post_ID, $ post, $ update);

в конце этого. Таким образом, вы можете подключиться к этому и выполнить любую задачу после создания поста.
Примерно так в файле functions.php вашей темы или в файле плагина:
do_action ('wp_insert_post', 'send_notification');
функция send_notification ($ post_ID, $ post, $ update) {
    // ваш код здесь
}
Создан 21-03-2017 06:30 Aniruddha Gawade1,0051411