In the last episode, you wrote the code to serve the archive template for the FAQ custom post type from the plugin. Now we need to allow the theme to override. If a developer wants to change the archive, s/he could add an
archive-faq.php file to their theme. In that case, you’d want to load their template instead of yours. Give the power to the theme over the plugin for templates.
There are a couple of approaches to accomplishing this feature. You’ll first build a solution with Technique 1 that locates the template, and if not available, it then returns the plugin’s template.
Then in our preferred approach, you’ll use the PHP construct
strpos to check if the
archive-faq.php is in the parameter that WordPress found.
There are several PHP lessons in this episode as well including:
- What is a falsey state and how does it work?
- How does the strict operator work and why do we use it?
- PHP type juggling (here’s the lab on type juggling too)
- PHP type casting
I also mention a couple of PHP labs, which you can find here:
Don’t repeat yourself. Don’t repeat yourself. Don’t repeat yourself.
Total Lab Runtime: 05:11:56
- 1 Lab Introductionfree 07:51
- 2 Planning it Outfree 11:05
- 3 Module Architecturepro 17:12
- 4 Build the Basic FAQ Custom Post Typepro 06:04
- 5 Configuring the Custom Post Type Labelspro 18:33
- 6 Configuring the Custom Post Type Feature Supportspro 07:23
- 7 Configuring the Custom Post Type Optionspro 11:27
- 8 Flushing the Rewritespro 09:44
- 9 Planning the Taxonomypro 04:54
- 10 Build the Taxonomypro 05:33
- 11 Taxonomy Label Generatorpro 14:23
- 12 Flush Rewrite Rules - Taxonomypro 05:36
- 13 Architecting the Archive Pagepro 11:14
- 14 Serve Archive Template from the Pluginpro 10:41
- 15 Let Theme Override Our Archive Templatepro 21:29
- 16 Build the Archivepro 11:09
- 17 Build the Archive Viewspro 13:23
- 18 Set the Order Within the Topicpro 03:44
- 19 Review and Commit Changespro 02:34
- 20 Architect the Shortcodepro 15:23
- 21 Build the Shortcode - Single FAQpro 21:19
- 22 Fixing the Architecturepro 08:00
- 23 Define a WP_Query for Topicpro 16:10
- 24 Continue Building the Shortcodepro 11:39
- 25 Finish by Topic Shortcodepro 08:51
- 26 Planning the Refactorpro 08:01
- 27 Refactor FAQ Modulepro 19:58
- 28 Test, Fix, Commit, and Wrappro 08:36