The publish_phone WordPress PHP action is triggered after a post submitted by email is published.
Usage
add_action('publish_phone', 'your_custom_function');
function your_custom_function($post_ID) {
// your custom code here
}
Parameters
- $post_ID (int) – The post ID of the published post.
More information
See WordPress Developer Resources: publish_phone
Examples
Send an email notification when a post is published
This example sends an email notification to the admin when a post submitted by email is published.
add_action('publish_phone', 'send_email_notification');
function send_email_notification($post_ID) {
$admin_email = get_option('admin_email');
$post_title = get_the_title($post_ID);
$subject = "New Post Published: " . $post_title;
$message = "A new post submitted by email has been published. Post ID: " . $post_ID;
wp_mail($admin_email, $subject, $message);
}
Log published email posts to a custom log file
This example logs the post ID of published email posts to a custom log file.
add_action('publish_phone', 'log_email_published_posts');
function log_email_published_posts($post_ID) {
$log_file = fopen('email_published_posts.log', 'a');
fwrite($log_file, "Post ID: " . $post_ID . " published at " . date("Y-m-d H:i:s") . "\n");
fclose($log_file);
}
Update post meta after publishing email post
This example adds or updates a custom meta field ‘_email_published’ with a value of ‘yes’ when an email post is published.
add_action('publish_phone', 'update_email_published_meta');
function update_email_published_meta($post_ID) {
update_post_meta($post_ID, '_email_published', 'yes');
}
Add a category to published email posts
This example adds a ‘Published by Email’ category to posts published via email.
add_action('publish_phone', 'add_email_published_category');
function add_email_published_category($post_ID) {
$category_id = get_cat_ID('Published by Email');
if (!$category_id) {
$category_id = wp_create_category('Published by Email');
}
wp_set_post_categories($post_ID, array($category_id), true);
}
Change post status to ‘private’ after publishing email post
This example changes the post status to ‘private’ after a post submitted by email is published.
add_action('publish_phone', 'set_private_after_publish');
function set_private_after_publish($post_ID) {
$post_data = array(
'ID' => $post_ID,
'post_status' => 'private',
);
wp_update_post($post_data);
}