Réponses:
Il existe quelques plugins qui gèrent les notifications par e-mail , mais ils semblent tous agir comme un service d'abonnement pour (tous) les utilisateurs de WordPress.
Pour informer que vous lorsqu'un poste ou la page est publiée:
/**
* Send an email notification to the administrator when a post is published.
*
* @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;
// Recipient, in this case the administrator email
$emailto = get_option( 'admin_email' );
// Email subject, "New {post_type_label}"
$subject = 'New ' . $post_type->labels->singular_name;
// Email body
$message = 'View it: ' . get_permalink( $post->ID ) . "\nEdit it: " . get_edit_post_link( $post->ID );
wp_mail( $emailto, $subject, $message );
}
add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );
Vous pouvez soit le déposer dans votre thème functions.php
, soit l'enregistrer en tant que plugin (ce qui pourrait être plus approprié, car il n'est pas exactement lié au thème).
sha - il répond à la question en faisant savoir que la solution publiée ne fonctionne pas dans tous les cas.
Après 24 heures, je peux mettre à jour les connaissances que j'ai apportées. La solution à cet emplacement ( Notifier l'administrateur lorsque la page est modifiée? ) Fonctionne sur le serveur où la solution publiée ci-dessus ne fonctionne pas. Pour citer le fil avec la solution qui fonctionne mieux dans les deux contextes, j'ai essayé:
Le script original du wpcodex fonctionne très bien:
add_action( 'save_post', 'my_project_updated_send_email' );
function my_project_updated_send_email( $post_id ) {
//verify post is not a revision
if ( !wp_is_post_revision( $post_id ) ) {
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'A post has been updated';
$message = "A post has been updated on your website:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
//send email to admin
wp_mail( get_option( 'admin_email' ), $subject, $message );
}
}
Bien sûr, vous devrez utiliser le ou les crochets de transition de statut appropriés et wp_mail()
.
Il existe un plugin très flexible appelé " Post Status Notifier " disponible dans le répertoire des plugins WordPress.
Vous pouvez définir vos propres règles, quand une notification doit être envoyée. Vous pouvez choisir le destinataire, Cc, Cci, avant et après l'état. Et vous pouvez personnaliser complètement le corps du texte et le sujet (avec des espaces réservés).
Fonctionne parfaitement pour moi!
Si vous ne voulez pas pirater le fichier de fonctions de votre thème, utilisez un plugin comme celui-ci. Il envoie des notifications à l'administrateur lorsque le contributeur soumet un post pour examen, et une notification par e-mail au contributeur lorsque le post est publié.
https://wordpress.org/plugins/wpsite-post-status-notifications/