WordPress will work through the template hierarchy and use the template file it comes across first. So if you want to create a custom template for your acme_product
custom post type, a good place to start is by copying the single.php
file, saving it as single-acme_product.php
and editing that.
However if you don’t want to create custom template files, WordPress will use the files already present in your theme, which would be archive.php
and single.php
and index.php
files.
Single posts and their archives can be displayed using the single.php
and archive.php
template files respectively,
- single posts of a custom post type will use single-{post_type}.php
- and their archives will use archive-{post_type}.php
- and if you don’t have this post type archive page you can pass BLOG_URL?post_type={post_type}
where {post_type}
is the $post_type
argument of the register_post_type() function.
So for the above example, you could create single-acme_product.php
and archive-acme_product.php
template files for single product posts and their archives.
Alternatively, you can use the is_post_type_archive()
function in any template file to check if the query shows an archive page of a given post types(s), and the post_type_archive_title()
to display the post type title.