The is_sticky() WordPress PHP function determines whether a post is sticky.
Usage
is_sticky($post_id);
Example:
if (is_sticky()) { echo 'This is a sticky post!'; }
Parameters
$post_id
(int, optional) – Post ID. Default is the ID of the global$post
.
More information
See WordPress Developer Resources: is_sticky()
Examples
Check if a post is sticky
This code checks if a specific post with ID 42 is sticky:
if (is_sticky(42)) { echo 'Post 42 is sticky!'; }
Display a message on all sticky posts
This code displays a message on all sticky posts in The Loop:
if (have_posts()) { while (have_posts()) { the_post(); if (is_sticky()) { echo 'This post is sticky!'; } the_title(); the_content(); } }
Add a CSS class to sticky posts
This code adds a CSS class sticky-post
to all sticky posts:
$post_classes = is_sticky() ? 'sticky-post' : ''; echo '<div class="' . $post_classes . '">'; the_title(); the_content(); echo '</div>';
Show only sticky posts in a custom query
This code creates a custom query to display only sticky posts:
$sticky_posts = get_option('sticky_posts'); $query_args = array( 'post__in' => $sticky_posts ); $sticky_query = new WP_Query($query_args); if ($sticky_query->have_posts()) { while ($sticky_query->have_posts()) { $sticky_query->the_post(); the_title(); the_content(); } }
Display a special layout for sticky posts
This code displays a different layout for sticky posts in The Loop:
if (have_posts()) { while (have_posts()) { the_post(); if (is_sticky()) { get_template_part('content', 'sticky'); } else { get_template_part('content'); } } }