The generic_ping WordPress PHP function sends pings to all of the ping site services for a specific post.
Usage
generic_ping( $post_id );
Parameters
$post_id(int) – Required. The ID of the post you want to ping.
More information
See WordPress Developer Resources: generic_ping
Examples
Ping a New Post
When you publish a new post and want to notify ping services:
// Notify ping services for post with ID 42 generic_ping( 42 );
Automatically Ping on Post Status Transition
Ping services when a post transitions from draft to publish:
add_action( 'transition_post_status', 'my_ping_on_publish', 10, 3 );
function my_ping_on_publish( $new_status, $old_status, $post ) {
if ( 'publish' === $new_status && 'publish' !== $old_status ) {
generic_ping( $post->ID );
}
}
Ping Custom Post Type
Ping services for a custom post type, e.g., ‘product’:
add_action( 'publish_product', 'ping_custom_post_type', 10, 2 );
function ping_custom_post_type( $ID, $post ) {
generic_ping( $ID );
}
Manually Ping for a Range of Post IDs
Ping services for a range of post IDs:
function manual_ping_range( $start_id, $end_id ) {
for ( $i = $start_id; $i <= $end_id; $i++ ) {
generic_ping( $i );
}
}
// Ping posts with IDs from 100 to 110
manual_ping_range( 100, 110 );
Ping Services for All Published Posts
Ping services for all published posts:
function ping_all_published_posts() {
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'fields' => 'ids',
);
$posts = get_posts( $args );
foreach ( $posts as $post_id ) {
generic_ping( $post_id );
}
}
// Notify ping services for all published posts
ping_all_published_posts();