I have registered a custom post type and I am trying to make posts of that type display in a specific template file but can't figure out what to name my template file in order for the posts to use it.

Here's my code in my functions file:

function digital_post_type() {

  register_post_type( 'digital',
      'labels' => array(
        'name' => __( 'Digital Assets' ),
        'singular_name' => __( 'Digital Asset' ),
        'menu_name' => __( 'Digital'),
        'name_admin_bar' => __( 'Digital Assets'),
        'add_new' => __( 'Add New'),
        'add_new_item' => __( 'Add New Digital Asset'),
        'new_item' => __( 'New Digital Asset'),
        'edit_item' => __( 'Edit Digital Asset'),
        'view_item' => __( 'View Digital Asset'),
        'all_items' => __( 'All Digital Assets')
      'public' => true,
      'has_archive' => true,
      'rewrite' => array( 'slug' => 'digital_assets' ),
      'supports' => array( 'title','thumbnail', 'excerpt' )


add_action( 'init', 'digital_post_type' );

I tried naming my template file single-digital_assets.php but the posts are still using the default single.php template. I also tried resaving my permalink settings to make sure it wasn't a caching issue.


The post type name is digital (register_post_type( 'digital',) so the template should be single-digital.php.

  • Thank you! For some reason I thought it was the slug. Working great now!
    – user13286
    Jan 11 '19 at 15:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.