WordPress Version: 6.1
/**
* Gets the specific template filename for a given post.
*
* @since 3.4.0
* @since 4.7.0 Now works with any post type, not just pages.
*
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
* @return string|false Page template filename. Returns an empty string when the default page template
* is in use. Returns false if the post does not exist.
*/
function get_page_template_slug($post = null)
{
$post = get_post($post);
if (!$post) {
return false;
}
$template = get_post_meta($post->ID, '_wp_page_template', true);
if (!$template || 'default' === $template) {
return '';
}
return $template;
}