Tout savoir sur WordPress

Le dictionnaire du vocabulaire WordPress pour les débutants

Quand vous commencez à développer vos propres thèmes, vous découvrirez un vocabulaire nouveau. Pour vous aider à bien le comprendre, voici un petit glossaire des termes techniques WordPress.

Custom Type (Type de publication)

Par défaut WordPress possède 2 types de publication visibles : les Articles (Posts) et les Pages. Les premiers sont le coeur du blog, sont affichés en liste et catégorisables. On retrouve donc à un moment donné une page blog (ou accueil) qui affiche la liste des derniers articles du blog.

Imaginons maintenant que vous souhaitez publier vos créations, comme un Portfolio,  ou encore que vous voulez afficher vos Produits si vous êtes vendeur, ou encore vos Plats si vous êtes cuistot.  Ces publications n’ont ni leur place dans Pages, ni dans Articles. WordPress vous offre donc la possibilité de créer un nouveau type de publication que vous nommerez comme vous le souhaitez.

Pour créer un custom type, il faut entrer un bout de code dans votre functions.php. Pour vous aider :

Une fois crée, vous pourrez voir une nouvelle entrée de menu dans votre tableau de bord WordPress.

custom-type

Taxonomy (Taxonomie)

Par définition une taxonomie est l’action d’idientifier et  classer des être vivants. Dans WordPress c’est la manière dont on va classer nos articles. Par défauts il existe 2 méthodes de rangement : les catégories et les mots-clés.

Les catégories sont plutôt prédéfinies et fixes, alors que les mots-clés sont en saisie libre. Les mots-clés sont complémentaires aux catégories et permettent par exemple de lister tous les articles parlant d’un thème commun mais qui ne sont pas forcément dans la même catégorie Prenons un blog geek par exemple dontl es catégories sont : films, comics, jeux vidéo, livres. Si un article parle de Marvel, en cliquant sur ce mot clés on obtiendra la liste de tous les articles qui parlent de Marvel, qu’ils soient indépendamment dans films, dans comics ou dans jeux vidéo.

Ce double classement est terriblement efficace, d’où le succès de WordPress.

Lorsque vous allez créer votre type de publication, vous aller aussi pouvoir créer la ou les taxonomies qui vont avec. Afin de permettre à l’auteur de catégoriser ses publications et au lecteur de pouvoir facilement trier les articles !

Pour chaque type de publication crée vous aller pouvoir lui assigner une ou plusieurs taxonomies. Et pour chacune d’entre elles vous définirez vous-même si c’est du type catégories (on les prédéfinie à l’avance et ça bouge peu dans le temps) ou si c’est du type mots-clés (une liste différente pour chaque article).

On peut pousser assez loin, imaginons que vous créez un type de publication « Maisons » pour un agent immobilier, vous allez pouvoir créer une taxonomie pour la surface (de 80 à 100m2, de 100 à 120m2…), une taxonomie pour le nombre d’étages (plain pied, 1 étage, 2 étages) et une taxonomie pour le lieu (Isère, Savoie, Rhône).

Pour créer une taxo, il faut la déclarer dans functions.php et la lier à un custom post type.

taxos

Term (Terme)

Les Termes d’une taxonomie sont les éléments qui la composent. Pour reprendre l’exemple précédent, dans catégories, les termes sont Jeux vidéo, films, comics … ou alors entrées, plat principal, desserts dans un custom types « nos recettes » par exemple.

Donc en résumé :

  • Un type de publication permet de ranger un contenu qui n’est ni page ni article
  • On range ces publications avec des taxonomies (en mode mots clés ou catégories)
  • Ces catégorisations sont nommées les termes.

Pas besoin de code pour cela, c’est l’auteur qui va les définir lui même à partir de l’admin WordPress. On les retrouve dans le sous menu du type de publication sous Ajouter :

taxos-multiples

Hook (Crochet) : Actions et Filters

Certains plugins ont besoin de modifier le fonctionnement des mécanismes de WordPress, mais pour cela il est hors de question d’aller modifier directement le code source de ce dernier. Tout simplement parce que lors de la prochaine mise à jour, vos modifications seront écrasées. De ce fait on ne doit jamais toucher aux fichiers du coeur de WordPress. 

Prenons maintenant le cas de WordPress SEO de Yoast, qui va améliorer la façon dont est écrit le titre de la page dans la balise <title>. Il a besoin de modifier et améliorer la façon dont est écrit ce titre, il va donc devoir modifier le fonctionnement prévu à l’origine par WordPress. C’est là qu’interviennent les Hooks ! C’est un mécanisme mis en place par WordPress dans la plupart des fonctions pour permettre à d’autres de récupérer le résultat généré par la fonction (par exemple le titre), l’intercepter dans sa propre fonction afin de le modifier avant son affichage sur le site.

Les hooks se présentent sous la forme d’Actions ou de Filtres, que j’explique juste après.

Le principe de fonctionnement :

  • Vous déclarez dans functions.php que vous voulez intercepter une fonction WordPress
  • Une fois que WordPress a exécuté sa fonction, il regarde si vous voulez intercepter le résultat, et exécute votre fonction perso
  • Le résultat est envoyé à votre fonction, vous pouvez en faire ce que vous voulez, le modifier, le remplacer, et vous renvoyez un nouveau résultat
  • La fonction d’affichage de WordPress va afficher votre résultat intercepté.

Avec l’exemple de WordPress SEO :

WordPress génère un titre simple, WP SEO récupère cette information et l’améliore (en mettant par exemple nom de la page – Nom du site) et retourne cette valeur. WordPress l’affiche ensuite avec la fonction habituelle Wp_title.

Filters

Les filtres permettent d’intercepter une valeur et de la modifier avant affichage dans le template. Par exemple WordPress crée automatiquement un extrait (the_excerpt) en coupant au 5ème mot, si vous souhaitez changer cette valeur, vous allez utiliser un filtre :

function smoothie_excerpt_length($length) {
	return 20;
}
add_filter('excerpt_length', 'smoothie_excerpt_length');

Vous allez pouvoir de la même façon modifier la configuration de base de Tiny MCE (l’éditeur visuel WYSIWYG de WordPress) en choisissant quelles options vous souhaitez retirer :

function smoothie_custom_tinymce($init) {

	$init['theme_advanced_blockformats'] = 'p,h1,h2,h3,h4';
	$init['theme_advanced_disable'] = 'strikethrough,underline,forecolor';
	#$init['theme_advanced_styles'] = "Mon style=monstyle"; // custom styles

	return $init;
}

add_filter('tiny_mce_before_init', 'smoothie_custom_tinymce' );

Remarquez qu’à chaque fois vous récupérez dans la fonction une valeur ($init, $length) , vous la modifiez dans la fonction et vous la retournez (return $init) pour qu’elle continue son bout de chemin vers l’affichage.

Actions

Plus poussées que les filtres, les actions permettent plus de possibilité comme modifier un fonctionnement, ajouter du code …

C’est ce que l’on utilise lorsque, dans functions.php , on souhaite créer un nouveau type de publication, ajouter des scripts Js dans le chargement de WordPress, déclarer des zones de sidebar et menus.  Par exemple l’action qui permet de déclarer vos zones de menus :

function smoothie_menus() {
	register_nav_menus(
		array(
			'main-menu' => 'Menu Principal',
			'footer-menu' => 'Pied de page'
		)
	);
}
add_action( 'init', 'smoothie_menus' );

L’action, contrairement au filtre, permet d’utiliser d’autre fonctions. La fonction register_nav_menu ne peut pas être appelée n’importe quand, mais à un moment précis de l’éxecution de WordPress.  Le PHP est procédural, il suit le code du début à la fin :  d’abord le coeur de WordPress, ensuite les plugins, ensuite le thème. Vous n’avez accès qu’au thème qui est executé en dernier. Les actions permettent de faire un peu un retour dans le temps pour déclarer votre menu au bon moment.

Il existe un bon nombre de filtres et actions dans WordPress qui peuvent s’avérer très pratique.

WP Query

Pour chaque page demandée par l’internaute, WordPress va aller chercher les informations dans la base de données via une requête SQL. C’est l’objet WP Query qui s’occupe de ça automatiquement. Vous avez demandé la catégorie jeux vidéo ? Alors WordPress générera une requête qui demandera à récupérer  :

  • 10 articles
  • Dans la catégorie jeux vidéo
  • Ordonnés par ordre chronologique inverse (les plus récents d’abord)
  • Publiés (il ignorera ceux en statut relecture, brouillon, planifiés et corbeille)

Vous allez pouvoir vous même appeler cette WP Query afin de : personnaliser la boucle WordPress, ou encore en créer une de toutes pièces.

Si par exemple si vous parlez d’un jeu vidéo dans un article, et qu’à la fin vous souhaitez afficher 3 autres jeux vidéo du même type (exemple : jeux d’action), vous pouvez créer une requête en indiquant les paramètres de recherche : catégorie jeux vidéo et action, 3 articles aléatoires. Tout cela sans écrire une seule ligne de SQL et sans avoir besoin de trop de compétences  en développement puisqu’il suffit de suivre le codex.

$my_query = new WP_Query('post_type=portfolio&posts_per_page=12');
if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post();
    // votre code
endwhile; endif;

Vous pourrez agir sur énormément de paramètres et récupérer exactement l’information qu’il vous faut, sans prise de tête !

The Loop (La boucle)

La boucle WordPress est la base du fonctionnement des templates de thèmes : c’est la manière dont fonctionne WordPress afin d’offrir un système de template simple : la boucle WordPress va récupérer le contenu de la page ou de l’article et l’afficher. Si c’est une liste d’article, la boucle va s’exécuter autant de fois qu’il y a d’articles à afficher. Ce bout de code est nécessaire, et identique, pour toute page de template dans un thème WordPress.

<?php if ( have_posts() ) : while ( have_posts() ) : the_post() ?>

		<h1><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h1>

		<?php the_content() ?>

<?php endwhile; endif; ?>

A l’intérieur de cette boucle, vous pourrez utiliser les fonctions de base de WordPress pour afficher le contenu :

  • the_content : le contenu
  • the_title : le titre
  • the_excerpt : le résumé (dans les archives d’articles)
  • the_date : la date
  • the_category : la catégorie
  • the_keywords : les mots clés
  • the_permalink : le lien vers l’article

La condition if / while peut vous paraitre étrange au premier abord. Pensez simplement que WordPress a déjà automatiquement récupérer les informations de la page, et là on indique simplement : « Si il y a du contenu à afficher, tant que je trouve du contenu je l’affiche ».

Et pour faire simple on utilise cette même boucle même si on a qu’un seul élément à afficher (le contenu d’une page par exemple).

Template

Les templates sont les fichiers qui composent un thème WordPress, dans lesquels on retrouve notamment la boucle WordPress (voir ci-dessus). En fonction du type de contenu à afficher, des templates différents seront appelés par WordPress. En voici quelques-uns :

  • front-page.php : la page d’accueil
  • page.php : pour afficher le contenu d’une page
  • archives.php : pour afficher la liste des articles du blog quand on demande un rangement par catégorie, mot-clé,  auteur ou date
  • single.php : pour afficher le contenu d’un article
  • home.php : la page d’accueil des articles du blog, si vous avez demandé à WordPress qu’une page statique soit la page d’accueil

Afin de savoir quelle page est appelée dans quel cas de figure, vous pouvez aller voir sur le template hierarchy ou encore utiliser le plugin simple debug.

template-hierarchy

Plugins & Add-ons

Les plugins, en français extensions, permettent d’ajouter des fonctionnalités à votre installation WordPress, selon vos besoins. Il existe des milliers de plugins pour faire tout et n’importe quoi : améliorer le référencement, envoyer des newsletter, ajouter des widgets, mettre en place des diaporamas animés (sliders) ou encore des formulaires contact …

Les plugins gratuits sont disponibles sur le répertoire officiel des plugins WordPress. Vous pourrez les télécharger directement depuis votre installation WordPress depuis le menu Extensions > Ajouter.

extensions-wp

Tout le monde peut créer ses propres Plugins et les distribuer à la communauté. J’ai publié récemment une sélection des plugins WordPress incontournables.

Certains plugins possèdent eux-même leurs extensions. On appelle cela alors un add-on. L’add-on nécessite la présence du plugin pour fonctionner.

Sidebar & Widgets

La Sidebar est la barre latérale qui accompagne bien souvent un blog. Vous allez pouvoir choisir vous même quels Widgets mettre à l’intérieur : les derniers articles, les derniers commentaires, la liste des catégories, un menu, le moteur de recherche, un texte … et bien d’autres. Par défaut WordPress propose quelques Widgets mais vous allez pouvoir en trouver pleins d’autres en installant des plugins. Le menu Apparence > Widgets vous permettra de choisir lesquels afficher et dans quel ordre.

widgets-admin

Cet article a été mis à jour il y a 1487 jours - Il n'est peut être plus à jour !

Article écrit par Maxime BJ

Développeur, bloggeur et formateur Web spécialisé WordPress. 31 ans. Grenoblois. Co-fondateur de WPChef, l’organisme de formation WordPress.

Organisateur de WPInAlps, le meetup WordPress Grenoblois. Vous pouvez me rencontrer lors d’événements tels que WordCamp Paris et Europe. Traducteur Français de l’extension Advanced Custom Fields. Également développeur d’applications web avec MeteorJs. Je m’occupe un site pour apprendre l’informatique aux débutants gratuitement.

J’aime les jeux vidéo, la rando, la bouffe bien grasse et les voyages.

2 Commentaires

  1. Super Article. Merci
    Je vais l’ajouter à ma liste de liens, à destination de mes élèves.
    Pour custom post type, je choisis plutôt contenu personnalisé
    Tu écris beaucoup en ce moment
    On se voit bientôt :-)

9e89b411d8ae59bad186df547c0f9689[[[