Types de publication WordPress : une abstraction pour les entités
Lorsque les programmeurs parlent d’entités, ils parlent généralement d’un concept ou de quelque chose qui existe dans un système. Parfois, c’est une classe, parfois c’est une bibliothèque ou une dépendance, ou il peut s’agir de quelque chose comme les types de publication WordPress.
Si WordPress doit être considéré comme une base d’application (par opposition à un framework), il est important de penser à certaines fonctionnalités de manière à pouvoir les traiter comme des entités. Dans l’exemple ci-dessus, un type de publication n’est que cela.
Lorsque les types de publication personnalisés ont été introduits, cela nous a permis d’introduire autre chose que des pages et des publications dans l’application. Désormais, nous pouvons implémenter n’importe quel concept – comme un événement – et le traiter comme une entité à part entière au sein du système.
Mais quand tout est dit et fait, tout est enregistré dans le tableau des messages. Et c’est bien parce que le développement de logiciels est une question d’abstraction. Au fur et à mesure que nous implémentons les types de publication WordPress, nous implémentons une abstraction au-dessus de l’idée de publication.
Types de publication WordPress
Dans le dernier article, j’ai parcouru le processus de création d’un utilisateur qui sera finalement associé à une entité dans l’application WordPress.
- Peut-être est-il l’auteur d’un post,
- Peut-être est-il le vendeur d’un produit,
- Peut-être est-il le narrateur d’une histoire,
- Ou tout ce que vous pouvez imaginer.
Les possibilités sont infinies. Mais avant de parler de la façon de créer une association entre les deux entités – c’est-à-dire l’utilisateur et le type de publication WordPress – nous devons parler de la façon d’implémenter une entité ou un type de publication personnalisé par programme.
Il y a beaucoup de documentation à ce sujet, et il y a beaucoup de tutoriels disponibles à ce sujet, donc je ne vais pas m’attarder sur ce point. Au lieu de cela, je vais essayer de garder cela aussi simple que possible. N’oubliez pas que l’objectif de toute cette série est d’arriver finalement à un point où nous associons des entités via des métadonnées.
Mais avant cela, nous devons créer les entités. Ainsi, nous avons un utilisateur, alors faisons cela.
Pour notre exemple, disons que l’utilisateur que nous avons créé dans le post précédent, Meghan, est l’auteur d’un livre. Et dans une installation WordPress gérée par quelqu’un d’autre, il existe un type de publication personnalisé pour les livres, chacun ayant quelques attributs :
- Titre,
- la description,
- date de publication,
- ISBN,
- nombre d’exemplaires initiaux vendus,
- où il peut être acheté,
- etc.
Vous pouvez ajouter plus ou moins à votre implémentation. En fait, vous vendez peut-être des livres électroniques et l’URL du livre à acheter est l’un des attributs. Quoi qu’il en soit, vous voyez l’idée.
Cela dit, nous pouvons implémenter un simple type de publication personnalisé pour les "livres" par programmation.
Implémentation d’un type de publication
Et ça ressemble à ça :
<?php
add_action( 'init', 'acme_create_book_post_type' );
/**
* Creates a new custom post type called 'Book' using the smallest number of arguments
* to prepare the post type.
*/
function acme_create_book_post_type() {
$args = array(
'labels' => array(
'name' => 'Books',
'singular_name' => 'Book',
),
'public' => true,
);
register_post_type( 'acme_book', $args );
}
Si vous lisez la documentation sur la création de types de publication personnalisés, il n’y a rien d’anormal à cela. Il devrait ressembler exactement à ce que vous attendez.
En ce qui concerne l’endroit où vous créez, cela dépend de la nature de votre projet. Il y a beaucoup de gens qui plaideront pour qu’il soit dans un plugin ou intégré dans un thème. Ce n’est pas le lieu d’en débattre. Qu’il suffise de dire que, pour mes besoins, je suppose que tout cela fait partie du même plugin du tutoriel précédent.
De plus, je ne digresse pas sur les taxonomies personnalisées, les commentaires ou tout autre type de données personnalisé qu’il est possible d’associer à un type de publication personnalisé.
À partir de là, nous examinons ensuite à quoi cela ressemble dans la zone d’administration de WordPress ainsi que dans la base de données.
Regardez derrière le rideau
Tout d’abord, voici à quoi cela ressemble (ou devrait ressembler) dans la zone d’administration de WordPress :
Et si vous regardez la base de données après avoir créé une entrée, vous verrez quelque chose comme ceci :
Évidemment, j’ai limité les enregistrements renvoyés dans le front-end de la base de données en filtrant les résultats pour rendre la capture d’écran plus facile à suivre.
Sur les livres
Et c’est tout, vraiment. Je veux dire, au niveau le plus fondamental, c’est ainsi que vous créez un type de publication personnalisé dans WordPress. Je sais que ce n’est pas nouveau, mais si je pouvais plaider un peu plus en faveur d’un message comme celui-ci, il inclurait les deux points suivants.
1 Il s’agit d’abstractions
Si vous cherchez à créer des applications Web à l’aide de WordPress, il est important d’arrêter de penser aux choses en termes traditionnels comme les publications, les pages, les commentaires et les catégories, et de commencer à les considérer comme des abstractions plus génériques.
Entités, comme mentionné précédemment dans l’article. Une fois que vous l’aurez fait, vous aurez un changement dans le modèle mental qui détermine votre capacité à réfléchir et à mettre en œuvre une solution.
2 Il s’agit de relations
Bien que nous pensions souvent aux choses dans leurs parties individuelles telles que les publications et les pages, nous savons intrinsèquement que les publications peuvent avoir des commentaires, les commentaires peuvent avoir des réponses, les pages peuvent avoir des modèles, etc.
Il existe des relations entre toutes ces choses individuelles qui font partie du système. Et quand vous commencez à penser aux relations comme étant quelque chose qui nous permet de faire plus, vous commencez à voir à quel point quelque chose peut être puissant. C’est un tout "le tout est plus grand que la somme de ses parties."
Donc, une fois que vous avez des entités individuelles en place et une fois que vous commencez à voir comment elles peuvent être liées les unes aux autres, vous faites un pas en avant dans la création de quelque chose qui résout un problème légèrement plus complexe à partir de parties apparemment simples.
Et c’est là que nous nous dirigerons ensuite.
Qu’en est-il des métadonnées ?
Le but de cette série est de parcourir comment créer une association entre des entités, n’est-ce pas ? Plus précisément, nous cherchons à créer une association entre un utilisateur et un article ou, plus précisément, un auteur et un livre.
WordPress fournit la base pour ce faire et c’est là que la puissance des tables et des crochets supplémentaires peut entrer en jeu. Dans le prochain article, je vais parler de la façon de créer cette association, des directions que peuvent prendre les associations et de la façon de travailler avec ces données si, par exemple, un utilisateur est supprimé de l’application.
Messages de la série
- Association de métadonnées WordPress: comment faire
- Création par programmation d’utilisateurs WordPress
- Types de publication WordPress: une abstraction pour les entités
- Association de métadonnées WordPress : entités liées

