BioShip of course supports the default WordPress Template Hierarchy. So you can still implement these top level page templates overrides as you would in a standard theme (eg. page.php, home.php etc.)
Remember, due to the File Hierarchy, all template files parts are searched for in your Child Theme directory first. (This is ideally where you would be placing any customized templates anyway so they are all preserved in Parent Theme updates.) In all cases the Template Hierarchy will fall back to your Parent Theme (BioShip Framework) if there is no custom template found.
However, BioShip extends upon this default system in many different ways to make templating way more flexible. This of course could make it complex and unfamiliar as well - hence this guide is here to make it comprehensible!
First, by default, it uses a single index.php, loop-index.php and content/content.php to handle ALL page conditions. This keeps things super clean and means you can copy these default templates as starting points for custom ones. It also means if you prefer, there is no need at all use the template hierarchy - but it is available if needed. You can instead use the in-built combination of Value Filters and Layout Hooks for customizations. And since one of the most common thing a project needs is custom sidebars, for that see the Sidebar Guide.
Read on for deeper customizations, as you can override sublevel templates and parts at just about any level also... This is done by simply creating a template file with the proper naming convention to match the desired page condition. Again, none of these need to be used by default, but are made available for the most flexible template system possible.
Base Template Files | /wp-content/bioship/ | |
header.php | Default Header Template | |
index.php | Default Index Template | |
loop-index.php | Default Loop Template | |
footer.php | Default Footer Template | |
There are several ways to change the loop, header and footer template that is used... | ||
First you can make an unchanged copy of index.php (eg. page.php or archive.php) | ||
and this will automatically load loop/page.php or loop-page.php (you could manually change it too.) | ||
This will work for more specific templates too, eg. taxonomy-term.php would auto-load loop-taxonomy-term.php | ||
Loop Templates | ||
loop/{string}.php | loop-{string}.php | [Value Filter:string] skeleton_loop_template (no default) |
loop/{filename}.php | loop-{filename}.php | matches base template filename eg. home.php -> loop-home.php |
loop/{pagecontext}.php | loop-{pagecontext}.php | frontpage, home, 404, search |
loop/{archivecontext}.php | loop-{archivecontext}.php | [archive only] category, taxonomy, tag, author, date, archive (fallback) |
loop/{post-type}.php | loop-{post-type}.php | [singular only] {post-type} |
loop/index.php | loop-index.php | Default Loop Template |
Hierarchy | Array Filter | [Value Filter:array] skeleton_loop_templates |
Header Templates | ||
header/{string}.php | header-{string}.php | [Value Filter:string] skeleton_header_template (no default) |
header/{filename}.php | header-{filename}.php | matches base template filename, eg. home.php -> header-home.php |
header/{pagecontext}.php | header-{pagecontext}.php | frontpage, home, 404, search |
header/{archivecontext}.php | header-{archivecontext}.php | [archive only] category, taxonomy, tag, author, date, archive (fallback) |
header/{pagecontext}.php | header-{pagecontext}.php | [singular only] {post-type} |
header/index.php | header-index.php | Default Header Template |
Hierarchy | Array Filter | [Value Filter:array] skeleton_header_templates |
Footer Templates | ||
footer/{string}.php | footer-{string}.php | [Value Filter:string]skeleton_footer_template (no default) |
footer/{filename}.php | footer-{filename}.php | matches base template filename, eg. home.php -> header-home.php |
footer/{pagecontext}.php | footer-{pagecontext}.php | frontpage, home, 404, search |
footer/{archivecontext}.php | footer-{archivecontext}.php | [archive only] category, taxonomy, tag, author, date, archive (fallback) |
footer/{post-type}.php | footer-{post-type}.php | [singular only] {post-type} |
footer/index.php | footer-index.php | Default Footer Template |
Hierarchy | Array Filter | [Value Filter:array] skeleton_footer_templates |
The Content Template Hierarchy handles all different templates for Custom Post Types and Post Formats. | ||
In other words, if a specific matching template is not found, it falls back to the first one that is found. | ||
Note: For consistency, the Hybrid content template hierarchy whether full Hybrid Core is activated or not. | ||
Content Template Hierarchy | ||
content/attachment-{mimetype}.php | content-attachment-{mimetype}.php | if is_attachment() |
content/{posttype}-{postformat}.php | content-{posttype}-{postformat}.php | combination of post type and post format |
content/{postformat}.php | content-{postformat}.php | aside, audio, chat, image, gallery, link, quote, status, video |
content/{posttype}.php | content-{posttype}.php | post, page or other custom post type |
content.php | content/content.php | Default Content Template |
Hierarchy | Array Filter | [Value Filter:array] hybrid_content_hierarchy |
Directory | String Filter | [Value Filter:string] skeleton_content_template_directory |
If you wish to use a split hierarchy you can optionally create and use an /archive/ template directory also. | ||
Again, this hierarchy falls back to the Content Template Hierarchy after, which handles all page conditions. | ||
Archive Template Hierarchy(optional) | ||
archive/attachment-{mimetype}.php | optional template directory | if is_attachment() |
archive/{posttype}-{postformat}.php | optional template directory | combination of post type and post format |
archive/{postformat}.php | optional template directory | aside, audio, chat, image, gallery, link, quote, status, video |
archive/{posttype}.php | optional template directory | post, page or other custom post type |
archive/content.php | optional template directory | Archive Content Template |
Directory | String Filter | [Value Filter:string] skeleton_archive_template_directory |
Other Content Templates | /wp-content/bioship/content/ | |
author-bio.php | Default Author Bio Template | |
loop-nav.php | Default Loop Navigation Template | |
loop-meta.php | Default Loop Meta Template | |
error.php | Default Error Page Template | |
Comments Template Hierarchy | /wp-content/bioship/content/ | |
comments-{posttype}-{postformat}.php | [not implemented yet] | |
comments-{postformat}.php | [not implemented yet] | |
comments-{posttype}.php | Custom Post Type Comments Template | |
comments.php | Default Main Comments Template | |
comments-nav.php | Default Comments Navigation Template | |
comments-error.php | Default Comments Error Template | |
Sidebar Template Hierarchy | /wp-content/bioship/sidebar/ | |
Sidebar and SubSidebar Templates are available by default for all sidebar contexts. see the BioShip Sidebar Guide for more detailed information. | ||
Third Party Templates | /wp-content/bioship/templates/ | |
/templates/ajax-load-more/ | AJAX Load More Repeater Template | copy/paste into Repeater Template field |
/templates/theme-my-login/ | Theme My Login Templates | modified for Theme Integration |
/templates/woocommerce/ | Alternative WooCommerce Templates | can be used instead of the default /woocommerce/ |
/templates/skeleton/ | Legacy Skeleton Templates | for reference only [deprecated] |
← Previous: File Guide and Hierarchy | Back to Documentation Index |