I prefer hooks, since they are more flexible: you can hook into them from your theme’s functions.php
file, but also from plugins. I try to put as much logic in plugins, so that the themes contain mostly layout stuff.
If you use an action hook, it is still possible to use get_template_part()
in that hook handler. This gives you the best of both worlds. You could probably even create a default hook that calls get_template_part()
, so that people who don’t have much experience with coding can add extra files, and others can remove this hook if they don’t want to.
Regarding performance: get_template_part()
uses (in locate_template()
) file_exists()
one, two or four times (depending on how you call it). It appears file_exists()
is very fast, and uses caching in PHP and maybe even in the OS. So that is probably not an issue.
Related Posts:
- after_setup_theme always runs
- Add custom classes to anchor in wp_nav_menu
- Getting instance variable in scope of ‘wp_enqueue_scripts’
- Display a different theme for not logged-in users
- What can I hook into after_setup_theme?
- Single Page WordPress Theme – Using page templates
- How do I “unhook” / de-register jQuery so that it’s not called as part of wp_footer();?
- Finding Page Template and Displaying Content
- Some doubts about how to show posts in a custom theme?
- How to add theme support?
- Theme Development: Starter Content after hook
- Never actually adding the action? Or do I have to call the action?
- Add content after get_header
- How to make a function occurs for one time?
- Is there any filter or action hook to remove layout classes from appearing in my templates?
- Add text when displying attribute with a hook on single product page
- Using classes instead of global functions in functions.php
- How to move page template files like page-{slug}.php to a sub-directory?
- Are the WordPress Core CSS styles really all nessesary?
- Allow Shortcode in Theme Customizer
- Where to post/upload the new theme for WordPress theme repository
- Setting multiple default background images?
- How to make a theme with more than one CSS file?
- What’s the difference between hooks, filters and actions? [duplicate]
- How do I get gallery thumbnail URL and change the default thumbnail size?
- Select menu on browser resize
- add_theme_support( ‘custom-header’ ) does not add option menu in dashboard
- Can I upload WordPress-react theme in Wp theme repository
- Upgrading a custom theme through the Dashboard
- Get list of months with posts
- Cannot get full thumbnail size using the_post_thumbnail
- Version control for both Vagrant config and themes being developed [closed]
- How to trigger function on theme delete?
- Is there a way to activate different theme for specified users? [closed]
- how can I remove the sidebar from my wp homepage [closed]
- Does any theme support child theme?
- How do I save a wordpress theme’s files and install them on another site?
- Is there an action for save_menu and/or update_menu?
- “add_theme_support” for custom footer color?
- Highlight “Show all” item in wp_list_categories
- How to add infinite scroll?
- get_option in header.php not returning value from customizer
- Internal error 500 accessing Theme > Customize
- Show notice just below the search form on the themes page
- Default image size not working
- Change locale by detecting viewer’s browser language setting and let them choose prefered language after
- Why is it needed to enqueue parent stylesheet in child theme?
- Is there any WordPress theme for Self Storagae just like Spacer [closed]
- Customizer: save setting/control content to post/page
- WordPress Unite Theme: Footer isn’t sticking [closed]
- Is accessing theme and using customizer GPL distribution?
- How to enqueue javascript for WP Customize options sidebar?
- WordPress 500 Internal server error when activating custom theme [closed]
- Customize how a WordPress theme looks like in the Theme Selector
- How to set a page as homepage in stead of the newspages?
- Widget Option is Missing
- WordPress Theme Validator?
- If you were to start using a WordPress framework today, which one would you use? [closed]
- Template for landing pages
- Is it possible to have a theme that uses only one single page?
- underscores use of the article element on the page template
- Plugin does not work in custom theme
- html5-reset theme does not show the image [closed]
- Adding a gallery to my first theme
- What exactly is “wordpress theming”? [closed]
- Valid SQL query not returning results
- Is there a way to retrieve the calling template part?
- Change Image Sizes for Mobile Theme
- Recommended sidebar / content widths
- Converting a theme to a child theme in a network
- What is the difference between Twenty eleven & roots framework?
- Is there a list of default generated Gutenberg block CSS? Unable to align video blocks
- How to change listing type permlink?
- Adding popup support to the theme
- Calling a WP Plugin Function’s Variable in Theme Template [duplicate]
- Hooking into the HTML header container
- Is_Page doesnt detect my page
- How to make updatable custom WordPress theme?
- How can I access variables from theme in child theme? [closed]
- Local variable name in setup_postdata()
- Creating a Single Page Theme correctly
- Is it possible to echo a woocommerce prouct attribute discription?
- Child theme menu not appearing in Twenty Seventeen
- How do I remove header/page-title image in farvis theme? [closed]
- How to link post image to post link?
- WordPress Twenty-Fourteen: How to Remove Home Page Header Image from Other Pages
- On wordpress, how do i require specific dimensions from user uploads only
- WordPress Theme Developments – Start from another theme
- Slider should be display in home template [closed]
- Modify comments_popup_link output
- what is do_action(); in wordpress? [duplicate]
- Can you create a custom page with content in the center already defined?
- How to migrate the menu from the site on my own theme in WordPress?
- RSS feed url showing page not found. How to solve it?
- How to convert that page to a wordpress template? [closed]
- Toolbox theme using printif statement – help needed understanding code block
- php file child theme directory not overriding parent theme php file [duplicate]
- How to Create a Multi Purpose Theme?
- Custom Single Page Portfolio Theme [closed]
- How to automatically set a Template Page Name next to a page in menu screen such as WooCommerce pages, front page, or posts page in wordpress?