Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Utiliser les Custom Post Types de WordPress

J’ai créé ce blog pour échanger avec vous et vous présenter mes différents projets. J’ai cherché un moyen simple et pratique pour organiser les articles dédiés à ces projets, c’est chose faite en utilisant les Custom Post Types de WordPress j’ai pu ajouter un type de post « Projet » spécialement adapté pour décrire mes projets.

Je vous propose donc un tutoriel sur la création d’un type de contenu personnalisé pour votre site, disponible depuis la version 3.0 de WordPress. À noter que dans ce tutoriel l’objectif sera la création d’un type de contenu pour gérer des projets mais qu’il vous sera possible d’adapter ce tutoriel pour gérer n’importe quels autres types de contenu comme par exemple des fiches de films, d’œuvres ou encore pour gérer des livres.

Pensez à faire vos modifications sur le thème enfant afin de ne pas perdre votre travail après une mise à jour de WordPress ou de votre thème !

La première étape consiste à ajouter une action dans votre fichier « functions.php » ensuite il faut créer la fonction qui portera le nom de l’action. Un grand nombre de paramètres sont disponibles, la première chose à faire est de modifier les labels pour qu’ils correspondent à votre nouveau type de contenu, ensuite il faudra adapter les arguments à votre cas.

add_action( 'init', 'projet_type_register' );
/**
 * Ajoute un type de post Projets
 * @link http://codex.wordpress.org/Function_Reference/register_post_type
 */
function projet_type_register() {
  $labels = array(
    'name' => 'Projets',
    'singular_name' => 'Projet',
    'menu_name' => 'Projets',
    'name_admin_bar' => 'Projet',
    'add_new' => 'Ajouter',
    'add_new_item' => 'Ajouter un nouveau projet',
    'new_item' => 'Nouveau projet',
    'edit_item' => 'Modifier le projet',
    'view_item' => 'Voir le projet',
    'all_items' => 'Tous les projets',
    'search_items' => 'Rechercher un projet',
    'parent_item_colon' => 'Projet parent:',
    'not_found' => 'Aucun projet trouvé.',
    'not_found_in_trash' => 'Aucun projet dans la corbeille.',
  );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'projet' ),
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => 5,
    'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
  );

  register_post_type( 'projet', $args );
}

Si vous souhaitez avoir plus de détails sur les différents paramètres le Codex WordPress est là pour vous.

À noter également que par soucis de simplicité je n’ai pas utilisé les fonctions de traduction de WordPress tel que __() ou _x() pour gérer les noms des labels mais cela est bien évident possible, un petit exemple :

'name' => _x( 'Projets', 'post type general name', 'your-plugin-textdomain' ),

Sauvegarder votre fichier « functions.php » et vous voilà avec un nouvel onglet « Projets », placé juste en dessous de celui des articles grâce au paramètre « menu_position » où 5 correspond à le placer en dessous de l’onglet des articles.

Nouveau type de contenu : Les Projets
Nouveau type de contenu : Les Projets

Dans le prochain tutoriel je vous montrerais comment ajouter des taxonomies existantes (Catégorie et Mot-clés) à votre nouveau type de contenu et même comment créer vos propres taxonomies, vous pourrez par exemple ajouter une taxonomie « Type » qui servira à définir le type de projet.
Nous verrons également comment modifier l’affichage de notre nouveau type de contenu.

Si vous avez des questions ou des propositions à faire n’hésitez pas à laisser un commentaire.

Commentaires

Ajouter un commentaire

Emmanuel Loisance

Étudiant en deuxième année de BTS S.I.O. option développement à Rennes. Ce blog permet de partager avec vous mes passions au travers des articles ainsi qu'un aperçu de mes différents projets informatiques.

http://emmanuel-loisance.fr/