-
Notifications
You must be signed in to change notification settings - Fork 18
Folder structure
The folders structure is defined by the means of the content in it.
The basic structure for the theme is like this :
├── assets
│ ├── acf
│ │ ├── json
│ │ └── php
│ ├── facetwp
│ └── searchwp
└── components
├── acf
├── blocks
├── loops
├── parts
└── templates
└── views
The assets folder contains all the static code for the configuration of the plugins like
- ACF
- SearchWP
- FacetWP
The goal of theses folders is to handle the .json
and .php
files needed for the configuration.
The files naming is for ACF
- JSON :
{group-slug}.json
- PHP
{group_slug}.php
The files naming for SearchWP
- JSON :
config.json
The files naming for facetWP
- JSON :
config.json
Into the components directory we add all the theme files we need, theses files are bits of code included into our theme with get_template_part
function.
The acf
folder contains everything that can be chunked into an acf component, like flexibles and blocks.
The blocks
folder contains generic parts of our code that we use accross our classic templates.
Like
-
pagenavi.php
containing the code for displaying pagenavi with function check. -
breadcrumb.php
containing the code for the breadcrumb and function check. -
related-news.php
display the last news accross all the templates
The loops
folder contains everything that is between while(have_posts()): the_post() ... endwhile
.
The name of the files have to be {post_type}.php
, so if I want to add a template for the event
post_type I will create a file like this components/loops/event.php
The parts
folder will contain all the specific parts for our theme used for one specific post_type or context.
The template names into part
is free but it's strongly recommended to create sub-folder based on context or post_type like components/parts/{post_type}/{filename}.php
components/parts/event/metadata.php
components/parts/event/header.php
components/parts/event/footer.php
If there is shared parts, so there is two solutions
- put in the
components/parts/
folder directly and create ashared
directory - move it into the blocks directory on his own folder