Par défaut, nous l'avons vu, WordPress offre différents types de post et de contenu :
- Articles
- Médias
- Pages
- Commentaires.
Bien que pratiques, il est parfois souhaitable d'en créer des nouvelles.
La déclaration d'un nouveau type de posts doit se fait via le fichier functions.php.
Par exemple:
Dans cet exemple, avec 'labels' => array( ... ) indique à WordPress comment nommer ce nouveau post dans différents scénarios.
'supports' => array( ... ) indique les champs disponibles pour ce type de post dans le tableau de bord.
Tandis que addaction('init', 'createpost_type'); indique à WordPress d'appeler cette fonction créant le nouveau type de post à son instanciation.
Dès ce moment, la nouvelle collection devrait être disponible dans le tableau de bord.
Pour afficher cette collection, dans le modèle de votre thème en PHP, il faudra faire une requête à WordPress et stocker son résultat dans une variable.
Par exemple:
Ensuite, toujours dans le modèe du thème en PHP, il faudra boucler parmi les résultats obtenus et imprimer print ceux-ci dans une page:
Les fonctions de base, tel que: the_title() ou the_excerpt() retourneront dans le contexte de cette boucle les informations associées à notre collection de produits.
Advanced Custom Fields (ACF)
Advanced Custom Fields devient Secure Custom Fields.
SCF (anciennement ACF) est une extension WordPress facilitant grandement la création de nouveaux types de posts. Dans l'onglet extensions (plugins) du tableau de bord, recherchez Advanced Custom Fields. Il est possible que l'extension ne soit pas encore installée, si tel est le cas, recherchez la dans la librairie d'extensions.
Installez et activez là.
Création de nouveaux types de posts
Une fois l'extension installée, un onglet SCF devrait être visible dans la barre latérale servant de menu.
À partir de cet onglet, il est possible de créer de nouveaux types de posts en en cliquant sur le deuxième onglet du haut nommé Post Types et ensuite sur le bouton Add New.
Remplissez minimalement les trois infos obligatoires (celle indiquées par un *)
- Plural Label nom au pluriel des posts
- Singular Label nom au singulier des posts
- Post Type Key nom pour accéder au post dans le code PHP (donc SANS d'accent, de caractère spécial ou d'espace)
Optionnellement, vous pouvez remplir les différents champs affichés après les trois premiers pour plus de contrôle sur l'affichage de votre nouveau type de post.
Lorsque vous avez terminé: cliquez sur le bouton Save Changes
Un nouveau type de post devrait automatiquement apparaître dans le menu latéral du tableau de bord de WordPress.
Il est possible d'ajouter les nouveaux types de posts dans le menu de navigation de votre site. Cependant, cette option est désactivée par défaut.
Pour l'activer:
Allez dans Apparence -> Menus.
En haut à droite de la page, repérez le bouton Options de l'écran et cliquez dessus.
Dans le panneau ouvrant, cochez les types de posts ayant la permission d'être inclus dans les menus.
Afin de pouvoir sélectionner un modèle (template) pour un type de post personnalisé, il est nécessaire de spécifier un modèle compatible.
Pour ce faire, dans le fichier PHP d'un modèle, il faut ajouter dans les commentaires de début de page une propriété intitulée Template Post Type et lui spécifier les types de posts compatibles.
Par exemple, pour qu'un modèle soit compatible avec les posts de base et les posts personnalisés de type partenaire, il faut écrire:
Secure Custom Field (SCF) permet d'exporter la structure de ses posts personnalisés afin de pouvoir les importer sur un autre site. Pour suivre la démarche, veuillez vous référer à cette page, section export.