The pingback_post WordPress PHP action fires after a post pingback has been sent.
Usage
add_action('pingback_post', 'your_custom_function', 10, 1);
function your_custom_function($comment_id) {
// your custom code here
return $comment_id;
}
Parameters
$comment_id(int): The ID of the comment related to the pingback.
More information
See WordPress Developer Resources: pingback_post
Examples
Log pingback events
Log every pingback event in a custom log file.
add_action('pingback_post', 'log_pingback_events', 10, 1);
function log_pingback_events($comment_id) {
// Get comment data
$comment = get_comment($comment_id);
// Log pingback data
error_log('Pingback from ' . $comment->comment_author_url . ' on post ID ' . $comment->comment_post_ID);
return $comment_id;
}
Send email notification on new pingback
Send an email notification to the site admin when a new pingback is received.
add_action('pingback_post', 'email_notification_on_pingback', 10, 1);
function email_notification_on_pingback($comment_id) {
// Get comment data
$comment = get_comment($comment_id);
$post = get_post($comment->comment_post_ID);
// Prepare email content
$subject = 'New Pingback Received on ' . $post->post_title;
$message = 'A new pingback has been received on the post "' . $post->post_title . '" from ' . $comment->comment_author_url;
// Send email
wp_mail(get_option('admin_email'), $subject, $message);
return $comment_id;
}
Add custom metadata to pingbacks
Add custom metadata to pingbacks for later analysis or display.
add_action('pingback_post', 'add_custom_metadata_to_pingbacks', 10, 1);
function add_custom_metadata_to_pingbacks($comment_id) {
// Add custom metadata to the comment
add_comment_meta($comment_id, 'custom_key', 'custom_value');
return $comment_id;
}
Moderate pingbacks based on domain
Automatically mark pingbacks as spam if they originate from a specific domain.
add_action('pingback_post', 'moderate_pingbacks_by_domain', 10, 1);
function moderate_pingbacks_by_domain($comment_id) {
// Get comment data
$comment = get_comment($comment_id);
$domain_to_moderate = 'example.com';
// Check if pingback is from the specified domain
if (strpos($comment->comment_author_url, $domain_to_moderate) !== false) {
// Mark the pingback as spam
wp_set_comment_status($comment_id, 'spam');
}
return $comment_id;
}