The post_stuck WordPress PHP action fires once a post has been added to the sticky list.
Usage
add_action('post_stuck', 'your_function_name', 10, 1);
function your_function_name($post_id) {
// Your custom code here
}
Parameters
$post_id(int) – ID of the post that was stuck.
More information
See WordPress Developer Resources: post_stuck
Examples
Send an email notification when a post is stuck
Send an email to the site administrator when a post has been made sticky.
function send_email_on_post_stuck($post_id) {
$to = get_option('admin_email');
$subject = 'A post has been made sticky';
$message = 'Post with ID ' . $post_id . ' has been made sticky.';
wp_mail($to, $subject, $message);
}
add_action('post_stuck', 'send_email_on_post_stuck', 10, 1);
Add a custom CSS class to sticky posts
Add a custom CSS class to the post_class when a post is stuck.
function add_sticky_class($classes, $class, $post_id) {
if (is_sticky($post_id)) {
$classes[] = 'custom-sticky-class';
}
return $classes;
}
add_filter('post_class', 'add_sticky_class', 10, 3);
Log the date and time when a post is made sticky
Store the date and time when a post is made sticky in the post meta.
function log_post_stuck_date($post_id) {
update_post_meta($post_id, '_sticky_date', current_time('mysql'));
}
add_action('post_stuck', 'log_post_stuck_date', 10, 1);