The embed_template WordPress PHP filter allows you to modify the template used for embedded posts.
Usage
add_filter('embed_template', 'your_custom_function_name'); function your_custom_function_name($template) { // your custom code here return $template; }
Parameters
$template
(string) – Path to the template file.
More information
See WordPress Developer Resources: embed_template
Examples
Change the template for embedded posts
Modify the default template for embedded posts by using a custom template file.
add_filter('embed_template', 'change_embed_template'); function change_embed_template($template) { $custom_template = locate_template('custom-embed.php'); if ($custom_template) { return $custom_template; } return $template; }
Set a custom template for a specific post type
Use a different template for embedded posts of a specific custom post type.
add_filter('embed_template', 'custom_post_type_embed_template'); function custom_post_type_embed_template($template) { global $post; if ('custom_post_type' === $post->post_type) { $custom_template = locate_template('custom-post-type-embed.php'); if ($custom_template) { return $custom_template; } } return $template; }
Change the template based on the post category
Set a custom template for embedded posts from a specific category.
add_filter('embed_template', 'category_based_embed_template'); function category_based_embed_template($template) { if (has_category('special', get_the_ID())) { $custom_template = locate_template('special-category-embed.php'); if ($custom_template) { return $custom_template; } } return $template; }
Use a custom template for logged-in users
Change the embedded post template for logged-in users.
add_filter('embed_template', 'logged_in_user_embed_template'); function logged_in_user_embed_template($template) { if (is_user_logged_in()) { $custom_template = locate_template('logged-in-embed.php'); if ($custom_template) { return $custom_template; } } return $template; }
Modify the template for a specific post
Set a custom template for a specific post ID.
add_filter('embed_template', 'specific_post_embed_template'); function specific_post_embed_template($template) { if (get_the_ID() == 123) { $custom_template = locate_template('post-123-embed.php'); if ($custom_template) { return $custom_template; } } return $template; }