Jawaban:
Ada beberapa plugin yang menangani pemberitahuan email , tetapi semuanya tampaknya bertindak seperti layanan berlangganan untuk (semua) pengguna WordPress.
Untuk memberi tahu Anda hanya ketika sebuah posting atau halaman diterbitkan:
/**
* 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 );
Anda bisa menjatuhkan ini di tema Anda functions.php
, atau menyimpannya sebagai plugin (yang mungkin lebih tepat, karena itu tidak terkait 'tema').
sha - itu menjawab pertanyaan dengan berkontribusi pengetahuan bahwa solusi yang diposting tidak bekerja di semua contoh.
Setelah 24 jam, saya dapat memperbarui pengetahuan yang saya berkontribusi. Solusi di lokasi ini ( Beri tahu admin saat laman diedit? ) Berfungsi di server tempat solusi yang diposting di atas tidak. Mengutip dari utas dengan solusi yang bekerja lebih baik dalam dua konteks saya mencoba:
Script asli dari wpcodex berfungsi dengan baik:
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 );
}
}
Tentu, Anda akan perlu menggunakan pengait atau pengait Transisi Status Posting yang sesuai dan wp_mail()
.
Ada plugin yang sangat fleksibel yang disebut " Post Status Notifier " yang tersedia di direktori plugin WordPress.
Anda dapat menetapkan aturan sendiri, saat pemberitahuan harus dikirim. Anda dapat memilih penerima, Cc, Bcc, sebelum dan sesudah status. Dan Anda dapat sepenuhnya menyesuaikan teks tubuh dan subjek (dengan placeholder).
Berfungsi sempurna untuk saya!
Jika Anda tidak ingin meretas file fucntions tema Anda, gunakan plugin seperti ini. Ini mengirim pemberitahuan ke admin ketika kontributor mengirimkan posting untuk ditinjau, dan pemberitahuan email ke kontributor ketika posting diterbitkan.
https://wordpress.org/plugins/wpsite-post-status-notifications/