nom-du-theme
| assests
| | stylesheets
| | javascripts
| | icons
| | | generic.png
| | images
| | ...
| framework
| | Florent
| | | Fordpress.php
| src
| | Acme
| | | FooController.php
| views
| | layouts
| | | default.php
| | partials
| | welcome.php
| | error_404.php
| 404.php
| index.php
| style.css
| screenshot.png
Créer un fichier composer.json à la racine de l'installation WordPress et remplir avec :
{
"autoload": {
"psr-0": {
"Florent": "wp-content/themes/<NOM-DU-THEME>/framework/",
"<NAMESPACE>": "wp-content/themes/<NOM-DU-THEME>/src/"
}
}
}
Lancer la commande : php composer.phar install
Insérer la ligne suivante dans le fichier functions.php :
require_once ABSPATH . 'vendor/autoload.php';
Activer le thème
Affiche la(les) valeur(s) d'une variable, de manière à ce qu'elle soit lisible.
Florent\FordPress::debug($var);
Créer un le template WordPress correspondant au template hierarchy.
Initialiser le controller comme suit :
Acme\FooController::bar();
Le namespace Acme doit être déclarer dans l'autoloader du composer.json.
Créer le controller dans le répertoire src/Acme/. Ici, "Acme" correspond au namespace déclarer dans composer.json.
Exemple d'un controller :
<?php
// src/Acme/FooController.php
namespace Acme;
use Florent\FordPress;
class FooController
{
public static function bar()
{
FordPress::render('welcome');
}
}
Créer la vue dans le répertoire views et l'afficher grace à la méthode render de la classe Fordpress.
Dans le fichier functions.php
Florent\FordPress::add_stylesheets(array(
array('style', 'style.css'),
array('style-min', 'assets/stylesheets/style.min.css')
));
- Nom
- Chemin du fichier CSS en partant du répertoire du thème comme racine
- Mettre à la valeur true pour l'usage d'un CDN par exemple
Dans le fichier functions.php
Florent\FordPress::add_javascripts(array(
array('app', 'assets/javascripts/app.js')
));
- Nom
- Chemin du fichier JS en partant du répertoire du thème comme racine
- Mettre à la valeur true pour l'usage d'un CDN par exemple
Dans le fichier functions.php
Florent\FordPress::pass_params_from_php_to_js(array(
array( 'app', 'params', array('foo' => 'bar', 'setting' => 123) )
));
Dans le fichier functions.php
Florent\FordPress::supports(array(
// 'post-formats',
// 'post-thumbnails',
// array('post-thumbnails', array('post')),
// 'custom-background',
// 'custom-header',
// 'automatic-feed-links',
// 'menus'
));
Dans le fichier functions.php
Florent\FordPress::add_image_sizes(array(
array('square', 100, 100, true),
array('rectangular', 600, 250, true),
));
Dans le fichier functions.php
Florent\FordPress::add_menus(array(
'navigation_principale' => 'Navigation principale',
'footer' => 'Footer'
));
Dans le fichier functions.php
Florent\FordPress::add_post_types(array(
array( 'livres', 'livres', 'livre', 1 ),
array( 'evenements', 'événements', 'événement', 1, 5, array('title', 'thumbnail'), 'icon-events.png' )
));
- Nom du post type à enregister, idéalement le pluriel en minuscules et sans accent (Requis)
- Nom du post type au pluriel (Requis)
- Nom du post type au singulier (Requis)
- Valeur 1 pour masculin, 0 pour féminin (Requis)
- Position (5 par défaut)*
- Support (array('title', 'editor') par défaut)*
- Nom du fichier d'icône placé dans "assets/icons" (generic.png par défaut)
* https://codex.wordpress.org/Function_Reference/register_post_type
Dans le fichier functions.php
Florent\FordPress::add_taxonomies(array(
array( 'rayons', 'rayons', 'rayon', 1, 'livres' ),
));
- Nom de la taxonomie à enregister, idéalement pluriel en minuscules sans accents (Requis)
- Nom de la taxonomie au pluriel (Requis)
- Nom de la taxonomie au singulier (Requis)
- Valeur 1 pour masculin, 0 pour féminin (Requis)
- Post type (Requis)
get_template_part('views/partials/<NOM-PARTIAL>');
Avec passage de variables
include(locate_template('views/partials/<NOM-DU-PARTIAL>'));
Utilisation de ACF : http://www.advancedcustomfields.com/
echo Florent\FordPress::excerpt(get_the_content());
echo Florent\FordPress::excerpt(get_the_content(), 200);
echo Florent\FordPress::add_google_analytics('UA-1234-56');
// Optimiser les fichiers HTML
Florent\FordPress::html_minify();
- Ajouts de javascripts via CDN
- Panneaux d'options
- CSS pour l'écran de login
- Enregistrement de sidebars