The make_spam_blog WordPress PHP action fires when the ‘spam’ status is added to a site.
Usage
add_action('make_spam_blog', 'your_custom_function', 10, 1);
function your_custom_function($site_id) {
// your custom code here
return $site_id;
}
Parameters
$site_id(int): Site ID.
More information
See WordPress Developer Resources: make_spam_blog
Examples
Send an email notification when a site is marked as spam
This example sends an email notification to the administrator when a site is marked as spam.
add_action('make_spam_blog', 'send_spam_notification', 10, 1);
function send_spam_notification($site_id) {
$admin_email = get_option('admin_email');
$subject = 'Site marked as spam';
$message = "Site ID $site_id has been marked as spam.";
wp_mail($admin_email, $subject, $message);
}
Log spam sites to a custom log file
This example logs the Site ID of a spam site to a custom log file.
add_action('make_spam_blog', 'log_spam_site', 10, 1);
function log_spam_site($site_id) {
$log_file = '/path/to/spam_sites.log';
$log_entry = "Site ID $site_id marked as spam on " . date('Y-m-d H:i:s') . "\n";
file_put_contents($log_file, $log_entry, FILE_APPEND);
}
Block a user associated with a spam site
This example blocks the user associated with a spam site by updating the user’s meta information.
add_action('make_spam_blog', 'block_user_from_spam_site', 10, 1);
function block_user_from_spam_site($site_id) {
$user_id = get_blog_option($site_id, 'user_id');
update_user_meta($user_id, 'blocked', 1);
}
Add a custom prefix to the spam site’s title
This example adds a custom prefix to the title of a spam site.
add_action('make_spam_blog', 'add_spam_prefix_to_title', 10, 1);
function add_spam_prefix_to_title($site_id) {
$current_title = get_blog_option($site_id, 'blogname');
$new_title = "[SPAM] " . $current_title;
update_blog_option($site_id, 'blogname', $new_title);
}
Remove all posts from a spam site
This example removes all posts from a site marked as spam.
add_action('make_spam_blog', 'delete_posts_from_spam_site', 10, 1);
function delete_posts_from_spam_site($site_id) {
switch_to_blog($site_id);
$posts = get_posts(array('numberposts' => -1));
foreach ($posts as $post) {
wp_delete_post($post->ID, true);
}
restore_current_blog();
}