Hey @caspervoogt , thanks for your feedback. I use my approach continuously in several projects and just double checked it using WP 5.9.3 and Astra pro 3.6.5 and 3.6.7 and it still works fine.
Using a template single-xxx.php in child theme folder is not an Astra feature but WordPress standard behaviour which seems not to be overridden by Astra. So I assume it does not depend on the specific Astra version or pro vs. free.
But I generally use Gutenberg and no page builder like Elementor, so I can not tell if there might be challenges with the page builders.
In the past sometimes I struggled with naming the template correctly. In my example my custom post type is called “mycpt”, defined i.e. in a plugin with
register_post_type( ‘mycpt’, $args );
For this the template has to be named single-mycpt.php in the child theme folder. For a custom post type “my_cpt” the template is single-my_cpt.php and so on.
As the single-xxx.php is easy to create, customizing the loop needs more effort, using remove_action and add_action. The solution proposed by @vyshnav4u has a approach not so far from my snippets but is differently implemented.
Apart from this I am sorry that my proposal could not help you.
While we are waiting for official documentation, may I have a little help?
I built a custom post type, using CPT UI and ACF.
I copied the single.php file and renamed it single-mycpt.php, added the code provided by Tanitat, and uploaded in my child theme. it worked so far.
Now I wonder how I should do to display my custom fields?
I guess I have to use the ACF function the_field(). Should I create another file for this?
Thanks for your precious help, I didn’t use CPT UI for a while and not with Astra theme.
This reply was modified 9 months, 1 week ago by diallyprod.
3 years, 7 months ago
I created a custom post template for a custom post type (CPT). I named it after my CPT e.g. single-cpt.php and copied the the content of single.php. It works so far.
Since Astra is doing the whole layout of the post in astra_content_loop() – which is defined in other files – I’m adding my custom HTML via the astra_entry_content_before hook, see:
Is there a better way to create custom post templates where I can edit what happens in astra_content_loop()?
The workaround with the hook is somewhat an ugly hack.