Skip to content
Nicolas Juen edited this page Aug 3, 2018 · 15 revisions

/!\DRAFT

Folders

The folders structure is defined by the means of the content in it.

Basic structure

The basic structure for the theme is like this :

├── assets
│   ├── acf
│   │   ├── json
│   │   └── php
│   ├── facetwp
│   └── searchwp
└── components
    ├── acf
    ├── blocks
    ├── loops
    ├── parts
    └── templates
└── views

Assets

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.

Naming

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

Components

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.

acf

The acffolder contains everything that can be chunked into an acf component, like flexibles and blocks.

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

loops

The loops folder contains everything that is between while(have_posts()): the_post() ... endwhile.

Naming

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

parts

The parts folder will contain all the specific parts for our theme used for one specific post_type or context.

Naming

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

  1. put in the components/parts/ folder directly and create a shared directory
  2. move it into the blocks directory on his own folder
Clone this wiki locally