Toutes les pages de WP Customer Area sont construites sur la même base et possèdent de nombreux points communs quant à leur fonctionnement. En plus de ces caractéristiques communes, les pages peuvent être groupées par type et proposent des fonctionnalités plus spécifiques. En tant que développeur, il sera intéressant de connaitre ces types de pages afin de pouvoir si besoin en modifier le comportement ou l’apparence. Retrouvez ci-dessous les différents types de pages utilisés dans WP Customer Area.
Astuce : vous pouvez connaitre le type d’une page en consultant l’outil pour développeurs dans Customer Area > Statut > Pages.
Page de base
C’est type par défaut d’une page. Elle sert de fondement aux types qui utiliseront les mêmes modèles :
{$slug}-header.template.php
{$slug}-content.template.php
{$slug}-footer.template.php
{$slug}-sidebar.template.php
(si présence d’une sidebar)
Page de redirection
Les pages de redirection sont principalement utilisées pour fournir une hiérarchie dans le menu de navigation. Leur mission est de rediriger vers une autre page du front-office.
Par exemple, la page Fichiers redirige par défaut vers Mes fichiers. Un autre exemple est la page principale de WP Customer Area qui redirige vers la page du tableau de bord de l’utilisateur.
Bien entendu, il vous est possible de faire pointer vers d’autres pages que celles définies par défaut en utilisant un filtre. Nous avons un bout de code qui vous explique comment changer la page d’accueil de l’espace client et il est valable pour toutes les pages de ce type.
Page d’affichage de listes de contenu privé
Ces pages servent à l’affichage des données privées : fichiers, pages ou encore conversations, elles fonctionnent à peu près toutes de la même façon.
Si du contenu est disponible
Comme pour les pages de base, le contenu de ces pages est généré par le modèle {$slug}-content.template.php
qui lui-même utilisera le modèle {$slug}-content-item-{$display_mode}.template.php
où $display_mode
est soit :
default
pour le cas général ;date_archive
pour l’affichage par année / mois ;category_archive
pour l’affichage d’une catégorie ;
Si aucun de ces modèles n’existe, {$slug}-content-item.template.ph
p sera utilisé.
Si aucun contenu n’est disponible
Dans ce cas, et sur le même principe, le modèle {$slug}-content-empty-{$display_mode}.template.php
sera utilisé (ou {$slug}-content-empty.template.php)
Listes dans le tableau de bord
De plus, ces pages dispose d’un réglage pour activer l’affichage de contenu récent dans le tableau de bord. Une fois ce paramètre activé, les contenus les plus récents sont récupérés et affichés en utilisant le modèle nommé {$slug}-content-item-dashboard.template.php
, ou {$slug}-content-item.template.php
s’il n’existe pas.
Si aucun contenu n’est disponible pour le tableau de bord, les modèles {$slug}-content-empty-dashboard.template.php
ou {$slug}-content-empty.template.php
sont utilisés.
Requête en base de données
Pour récupérer les contenus à afficher, nous avons recours à la classe WP_Query
. Les paramètres de cette requête peuvent être modifiés en utilisant l’un de ces filtres :
cuar/core/page/query-args?slug={$slug}
cuar/core/page/query-args?slug={$slug}&display_mode={$display_mode}
Le filtre dispose d’un seul et unique argument : le tableau des paramètres pour construire l’objet WP_Query
. Sur le même principe, pour le tableau de bord, vous pouvez avoir recours au filtre : cuar/core/dashboard/block-query-args?slug={$slug}
.
Un bout de code vous explique par exemple comment modifier les requêtes pour l’affichage des listings de contenu.
Page de création de contenu
Des extensions comme publication front-office et conversations autorisent la création de contenu directement depuis le front-office. Ces pages fonctionnent sur un comportement similaire et disposent d’actions pour intervenir avant ou après la création de contenu.
Vous pouvez donc insérer vos propres codes en utilisant les actions de WordPress nommées :
cuar/private-content/edit/before_create
cuar/private-content/edit/after_create
cuar/private-content/edit/before_update
cuar/private-content/edit/after_update
cuar/private-content/edit/before_create?slug={$slug}
cuar/private-content/edit/after_create?slug={$slug}
cuar/private-content/edit/before_update?slug={$slug}
cuar/private-content/edit/after_update?slug={$slug}