WordPress Version: 6.1
/**
* Makes a post sticky.
*
* Sticky posts should be displayed at the top of the front page.
*
* @since 2.7.0
*
* @param int $post_id Post ID.
*/
function stick_post($post_id)
{
$post_id = (int) $post_id;
$stickies = get_option('sticky_posts');
$updated = false;
if (!is_array($stickies)) {
$stickies = array();
} else {
$stickies = array_unique(array_map('intval', $stickies));
}
if (!in_array($post_id, $stickies, true)) {
$stickies[] = $post_id;
$updated = update_option('sticky_posts', array_values($stickies));
}
if ($updated) {
/**
* Fires once a post has been added to the sticky list.
*
* @since 4.6.0
*
* @param int $post_id ID of the post that was stuck.
*/
do_action('post_stuck', $post_id);
}
}