Types de page en front-office

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.php 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}