Benachrichtigungs-E-Mail, wenn ein Beitrag oder eine Seite geändert wird

10

Gibt es eine Möglichkeit, Wordpress eine E-Mail an mich zu senden, wenn eine Seite oder ein Beitrag veröffentlicht wird?

GavinR
quelle

Antworten:

18

Es gibt einige Plugins, die E-Mail-Benachrichtigungen verarbeiten , aber alle scheinen sich wie ein Abonnementdienst für (alle) WordPress-Benutzer zu verhalten.

So benachrichtigen Sie nur Sie, wenn ein Beitrag oder eine Seite veröffentlicht wird:

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

Sie können dies entweder in Ihrem Thema ablegen functions.phpoder als Plugin speichern (was möglicherweise besser geeignet ist, da es nicht genau mit dem Thema zusammenhängt).

TheDeadMedic
quelle
3

sha - es beantwortet die Frage, indem es das Wissen einbringt, dass die veröffentlichte Lösung nicht in allen Fällen funktioniert.

Nach 24 Stunden kann ich das von mir eingebrachte Wissen aktualisieren. Die Lösung an diesem Speicherort ( Administrator benachrichtigen, wenn die Seite bearbeitet wird? ) Funktioniert auf dem Server, auf dem die oben angegebene Lösung nicht funktioniert. Um aus dem Thread mit der Lösung zu zitieren, die in den beiden Kontexten besser funktioniert, habe ich versucht:

Das ursprüngliche Skript aus dem wpcodex funktioniert einwandfrei:

 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 ); 
   } 
} 
Türöffner
quelle
-1

Es gibt ein sehr flexibles Plugin namens " Post Status Notifier " im WordPress-Plugin-Verzeichnis.

Sie können eigene Regeln definieren, wann eine Benachrichtigung gesendet werden soll. Sie können den Empfänger Cc, Bcc vor und nach dem Status auswählen. Und Sie können den Text und den Betreff (mit Platzhaltern) vollständig anpassen.

Funktioniert perfekt für mich!

mikeST
quelle
Plugin-Empfehlungen sind nicht zum Thema. Die Empfehlung eines Plugins ohne Anzeige der relevanten Zeilen, die die Frage lösen, wird als minderwertig angesehen. Wenn das Plugin weg ist, ist die Antwort wertlos und die Seite leidet unter Link Rot.
Kaiser
-1

Wenn Sie die Fucntions-Datei Ihres Themas nicht hacken möchten, verwenden Sie ein Plugin wie dieses. Es sendet Benachrichtigungen an den Administrator, wenn der Mitwirkende einen Beitrag zur Überprüfung einreicht, und eine E-Mail-Benachrichtigung an den Mitwirkenden, wenn der Beitrag veröffentlicht wird.

https://wordpress.org/plugins/wpsite-post-status-notifications/

CreativeDev
quelle
2
Antworten sollten mehr als nur einfache Links sein . Sie sollten eigentlich eine Antwort sein, anstatt eine Route, auf der vielleicht jemand eine Antwort findet. Bitte helfen Sie dabei, das Verrotten von Links zu verhindern, bearbeiten Sie Ihre Antwort und geben Sie die erforderlichen Informationen an, die dem OP sowie späteren Besuchern helfen, ihr Problem zu lösen.
Kaiser
Ich denke, Sie haben das ein bisschen falsch angegeben. Sie würden niemals die Funktionsdatei "hacken". Es ist da, um Änderungen vorzunehmen und Hooks zu implementieren.
Mike