WordPress est livré avec cinq types d’articles par défaut : postpageattachmentrevision, et menu.

Lorsque vous développez votre plugin, vous pouvez avoir besoin de créer votre propre type de contenu spécifique : par exemple, des produits pour un site de commerce électronique, des devoirs pour un site de formation en ligne ou des films pour un site de critiques.

En utilisant les Custom Post Types, vous pouvez enregistrer votre propre type de post. Une fois qu’un type de post personnalisé est enregistré, il obtient un nouvel écran d’administration de haut niveau qui peut être utilisé pour gérer et créer des posts de ce type.

Pour enregistrer un nouveau type de post, vous utilisez la fonction register_post_type().

Alerte :
Nous vous recommandons de mettre les types de post personnalisés dans un plugin plutôt que dans un thème. Cela garantit que le contenu utilisateur reste portable même si le thème est modifié.

L’exemple minimal suivant enregistre un nouveau type de post, Produits, qui est identifié dans la base de données comme wporg_product.

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __('Products', 'textdomain'),'singular_name' => __('Product', 'textdomain'),),'public' => true,'has_archive' => true,));}add_action('init', 'wporg_custom_post_type');

Expansion du code source completRéduction du code source complet

Veuillez consulter la page de référence de register_post_type() pour la description des arguments.

Avertissement :
Vous devez appeler register_post_type() avant le crochet admin_init et après le crochet after_setup_theme. Un bon hook à utiliser est le init action hook.

Naming Best Practices #Naming Best Practices

Il est important que vous préfixiez vos fonctions et identifiants de type de post avec un préfixe court qui correspond à votre plugin, thème ou site web.

Avertissement :
Veillez à ce que votre identifiant de type de post personnalisé ne dépasse pas 20 caractères car la colonne post_type de la base de données est actuellement un champ VARCHAR de cette longueur.

Avertissement :
Pour assurer la compatibilité future, n’utilisez pas wp_ comme identifiant – il est utilisé par WordPress core.

Avertissement :
Si votre identifiant est trop générique (par exemple : « product« ), il peut entrer en conflit avec d’autres plugins ou thèmes qui ont choisi d’utiliser ce même identifiant.

Note :
La résolution des identifiants de type de message en double n’est pas possible sans désactiver l’un des types de message en conflit.

Top

URLs #URLs

Un type de post personnalisé obtient son propre slug dans la structure URL du site.

Un post de type wporg_product utilisera par défaut la structure URL suivante : http://example.com/wporg_product/%product_name%.

wporg_product est le slug de votre type de post personnalisé et %product_name% est le slug de votre produit particulier.

Le permalien final serait : http://example.com/wporg_product/wporg-is-awesome.

Vous pouvez voir le permalien sur l’écran d’édition de votre type de post personnalisé, comme pour les types de post par défaut.

Un slug personnalisé pour un type de message personnalisé #A Custom Slug for a Custom Post Type

Pour définir un slug personnalisé pour le slug de votre type de message personnalisé, tout ce que vous devez faire est d’ajouter une paire clé => valeur à la rewrite clé dans le tableau register_post_type() arguments.

Exemple:

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __( 'Products', 'textdomain' ),'singular_name' => __( 'Product', 'textdomain' ),),'public' => true,'has_archive' => true,'rewrite' => array( 'slug' => 'products' ), // my custom slug));}add_action('init', 'wporg_custom_post_type');

Expansion du code source completRéduction du code source complet

Ce qui précède aboutira à la structure URL suivante : http://example.com/products/%product_name%

Avertissement :
L’utilisation d’un slug générique comme products peut potentiellement entrer en conflit avec d’autres plugins ou thèmes, essayez donc d’en utiliser un qui soit plus spécifique à votre contenu.

Note :
Contrairement aux identifiants de type de post personnalisés, le problème de slug dupliqué peut être résolu facilement en changeant le slug de l’un des types de post en conflit.

Si l’auteur du plugin a inclus un appel apply_filters() sur les arguments, cela peut être fait de manière programmatique en surchargeant les arguments soumis via la fonction register_post_type().

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *