Оповещение по email при изменении любой записи или страницы
Есть ли способ настроить WordPress так, чтобы получать email-уведомления каждый раз, когда публикуется страница или запись?

Существует несколько плагинов для уведомлений по email, но все они работают как сервис подписки для (всех) пользователей WordPress.
Чтобы получать уведомления только вам при публикации записи или страницы:
/**
* Отправляет email-уведомление администратору при публикации записи.
*
* @param string $new_status
* @param string $old_status
* @param object $post
*/
function wpse_19040_notify_admin_on_publish( $new_status, $old_status, $post ) {
if ( $new_status !== 'publish' || $old_status === 'publish' )
return;
if ( ! $post_type = get_post_type_object( $post->post_type ) )
return;
// Получатель - email администратора
$emailto = get_option( 'admin_email' );
// Тема письма: "Новая {тип_записи}"
$subject = 'Новая ' . $post_type->labels->singular_name;
// Тело письма
$message = 'Посмотреть: ' . get_permalink( $post->ID ) . "\nРедактировать: " . get_edit_post_link( $post->ID );
wp_mail( $emailto, $subject, $message );
}
add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );
Вы можете добавить этот код в файл functions.php
вашей темы или сохранить его как отдельный плагин (что может быть более правильным решением, так как функционал не относится напрямую к теме).

sha — это ответ на вопрос, вносящий знания о том, что опубликованное решение работает не во всех случаях.
Через 24 часа я могу обновить предоставленную информацию. Решение по этой ссылке (Уведомлять администратора при редактировании страницы?) работает на сервере, где приведённое выше решение не срабатывает. Цитирую из обсуждения с решением, которое лучше работает в двух контекстах, которые я тестировал:
Оригинальный скрипт из wpcodex работает отлично:
add_action( 'save_post', 'my_project_updated_send_email' );
function my_project_updated_send_email( $post_id ) {
//проверяем, что пост не является ревизией
if ( !wp_is_post_revision( $post_id ) ) {
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'Пост был обновлён';
$message = "На вашем сайте был обновлён пост:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
//отправляем email администратору
wp_mail( get_option( 'admin_email' ), $subject, $message );
}
}

Конечно, вам понадобится использовать соответствующий хук или хуки перехода статуса записи и функцию wp_mail()
.

В каталоге плагинов WordPress доступен очень гибкий плагин под названием "Post Status Notifier".
Вы можете определить собственные правила, когда должно отправляться уведомление. Можно выбрать получателя, копию (Cc), скрытую копию (Bcc), статус до и после изменения. Также можно полностью настроить текст письма и тему (с использованием плейсхолдеров).
У меня он работает идеально!

Рекомендации [tag:plugin-recommendations] не соответствуют теме. И рекомендация плагина без демонстрации соответствующих строк кода, решающих вопрос, считается низкокачественным ответом. Если плагин перестанет существовать, ответ станет бесполезным, а сайт пострадает от "битых" ссылок.

Если вы не хотите редактировать файл функций вашей темы, используйте плагин, например этот. Он отправляет уведомления администратору, когда участник отправляет запись на проверку, а также email-уведомление участнику, когда запись публикуется.
https://wordpress.org/plugins/wpsite-post-status-notifications/

Ответы должны быть больше, чем просто ссылки. Они должны действительно давать ответ, а не быть маршрутом, где кто-то возможно найдет ответ. Пожалуйста, помогите предотвратить ссылочный распад, [отредактируйте] ваш ответ и предоставьте необходимую информацию, которая поможет автору вопроса, а также будущим посетителям решить их проблему.
