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 at 15:49

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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