Créer son propre thème WordPress à partir de zéro
Ce petit tuto a pour but de vous permettre de créer en quelques minutes seulement votre propre thème en WordPress. Ce tuto s’adresse à tout public qui est à l’aise avec le HTML & le CSS. Il permet d’aller chercher tous les contenus WordPress pour les intégrer dans une production HTML & CSS pré-existante. Ou à faire dans un 2e temps une fois tous les contenus WordPress affichés.
Créer les fichiers minimum requis
Pour obtenir un premier résultat, il suffit de :
- créer un nouveau répertoire dans wp-contents/themes p.ex. mon-propre-theme
- y créer un fichier index.php
- dans ce fichier écrire p.ex. Salut, ça fonctionne
- y créer un fichier style.css
- dans ce fichier copier le code suivant et modifier les informations
/* Theme Name: NOM DE VOTRE THEME
URI: http://www.VOTRE-SITE.COM
Description: DESCRIPTION DE VOTRE THEME.
Version: 1.0
Author: VOTRE NOM
*/
- y créer un fichier screenshot.png (dimensions 1200×900) illustrant le thème
- aller dans le backend apparence > thèmes et y activer le nouveau thème
- retourner sur l’URL publique du site et rafraichir la page
- La page affichera: Salut, ça fonctionne
Afficher des contenus dynamiques relatifs au site (nom, description, chemin vers le dossier du thème)
Maintenant que nous avons affiché le contenu de notre page index.php en activant le thème, passons en revue les quelques tags WP les plus utiles pour commencer, je pense notamment à:
- titre du site
- description / slogan du site
- chemin vers le répertoire du thème, afin de pouvoir lier notre feuille de style style.css à notre page index.php
Créer une boucle pour afficher tous les articles et leurs contenus
Nous allons maintenant créer une boucle qui permet d’afficher tous les aritcles / posts. Par défaut ils seront affichés par ordre antéchronologique (les plus récent en premier)
On peut aussi filtrer les boucles pour n’afficher que ce qui nous intéresse.
Requête plus complexe permettant de passer plus d’arguments. plus d’infos
'prof'
);
// 2) exécuter la requête et lancer la boucle
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
?>
Activer la possibilité d’ajouter une image mise en avant
Dans functions.php, ajouter le code suivant
//activer image mise en avant
add_theme_support( 'post-thumbnails' );
Afficher le menu
Vous verrez que par défaut il ne vous est pas possible d’ajouter un menu. Il faut le spécifier à WordPress. Dans le fichier functions.php, copier le code suivant:
// ajouter une zone de menu
register_nav_menu( 'primary', __( 'Navigation Menu' ) );
Ensuite dans votre thème, vous pouvez appeler votre menu de cette façon
Personaliser le lien Suite…
Dans functions, copier ce code:
//personaliser "lire la suite"
function modify_read_more_link() {
return 'lire la suite...';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
Ensuite dans le style personaliser la classe more-link
Ajouter une zone de widgets
Dans functions, copier ce code:
// Enregistrer une zone appelée 'Ma zone de widgets'
function add_widget_Support() {
register_sidebar( array(
'name' => 'Ma zone de widgets',
'id' => 'zone-widgets',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '
',
) );
}
// Hook the widget initiation and run our function
add_action( 'widgets_init', 'add_Widget_Support' );
// puis mettre ceci dans le thème à l'endroit désiré:
Ajouter plusieurs zones de widgets
// Enregistrer une zone appelée 'Ma zone de widgets'
function add_widget_Support() {
register_sidebar( array(
'name' => 'Ma zone de widgets',
'id' => 'zone-widgets',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => 'Ma zone de widgets 2',
'id' => 'zone-widgets-2',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '
',
) );
}
// Hook the widget initiation and run our function
add_action( 'widgets_init', 'add_Widget_Support' );
// puis mettre ceci dans le thème à l'endroit désiré:
Ajouter des classes sur le body
>
Ajouter wp_head() et wp_footer()
Pour terminer, il faut encore ajouter les 2 fonctions qui permettent à WordPress d’ajouter tout le code nécessaire au bon fonctionnement des plugins etc.