Templating of a specific post ID

You have to follow this file name structure:

single-{post-type}-{slug}.php

If you have a post names “Hello World” and the slug of post is hello-world then the template name will be single-post-hello-world.php

Update:

There is no default way to use id in template name. But you might try this snipped:

<?php
add_filter( 'single_template', 'load_post_template_by_id' );
 
function load_post_template_by_id( $single_template ) {
    global $post;
 
    if ( 'post' === $post->post_type) {
        $tmp_template = dirname( __FILE__ ) . '/single-post-'.$post->ID.'.php';

        if ( file_exists( $tmp_template ) ) {
            $single_template = $tmp_template;
        }
    }
 
    return $single_template;
}

Here I’m overriding the post template in a tricky way. Now if you have a post with id 42 and you have a template file named single-post-42.php then it should load automatically.

I didn’t test the code. So use it with your own risk.

tech