Determines whether a post is embeddable.
Parameters
$postint|WP_Post|nulloptional- Post ID or
WP_Postobject. Defaults to global $post.Default:
null
Source
function is_post_embeddable( $post = null ) {
$post = get_post( $post );
if ( ! $post ) {
return false;
}
$post_type = get_post_type_object( $post->post_type );
if ( ! $post_type ) {
return false;
}
$is_embeddable = $post_type->embeddable;
/**
* Filter whether a post is embeddable.
*
* @since 6.8.0
*
* @param bool $is_embeddable Whether the post is embeddable.
* @param WP_Post $post Post object.
*/
return apply_filters( 'is_post_embeddable', $is_embeddable, $post );
}
Hooks
- apply_filters( ‘is_post_embeddable’,
bool $is_embeddable ,WP_Post $post ) Filter whether a post is embeddable.
Changelog
| Version | Description |
|---|---|
| 6.8.0 | Introduced. |

is_post_embeddable()checks whether a post is publicly viewable and of an embeddable post type. This is commonly used in oEmbed handlers and custom preview generators to ensure a post can be safely embedded before outputting embed HTML.Example: Only show embed link if the post is embeddable
This function helps prevent attempting to embed protected, private, or unsupported post types. It’s particularly useful in custom oEmbed endpoints or when building embed previews manually.