Mémos

M é m o - l a b .

Les Custom Post Types

Les Custom Post Types, notés dans ce cours CPT, sont des types de contenu personnalisés. Ils représentent une entité correspondant à un type de contenu à part entière. A la base, WordPress est un outil permettant de construire des blogs. Dans ce contexte, les articles, intégrés par défaut comme contenus de base, prennent tout leur sens. Cependant, si je veux intégrer d’autres contenus à mon site ayant une structure différente ou abordant une thématique différente, les CPT seront la solution adéquate pour segmenter mes contenus en entités singulières.

Notion abordée : register_post_type().

La compréhension par le code :





Dans functions.php 

<?php
// Register Custom Post Type
function tutos_post_type() {

	$labels = array(
		'name'                  => _x( 'Tutoriels', 'Post Type General Name', 'text_domain' ),
		'singular_name'         => _x( 'Tutoriel', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'             => __( 'Tutoriels', 'text_domain' ),
		'name_admin_bar'        => __( 'Tutoriel', 'text_domain' ),
		'archives'              => __( 'Item Archives', 'text_domain' ),
		'attributes'            => __( 'Item Attributes', 'text_domain' ),
		'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
		'all_items'             => __( 'All Items', 'text_domain' ),
		'add_new_item'          => __( 'Add New Item', 'text_domain' ),
		'add_new'               => __( 'Add New', 'text_domain' ),
		'new_item'              => __( 'New Item', 'text_domain' ),
		'edit_item'             => __( 'Edit Item', 'text_domain' ),
		'update_item'           => __( 'Update Item', 'text_domain' ),
		'view_item'             => __( 'View Item', 'text_domain' ),
		'view_items'            => __( 'View Items', 'text_domain' ),
		'search_items'          => __( 'Search Item', 'text_domain' ),
		'not_found'             => __( 'Not found', 'text_domain' ),
		'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
		'featured_image'        => __( 'Featured Image', 'text_domain' ),
		'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
		'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
		'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
		'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
		'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
		'items_list'            => __( 'Items list', 'text_domain' ),
		'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
		'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
	);
	$args = array(
		'label'                 => __( 'Tutoriel', 'text_domain' ),
		'description'           => __( 'Site Tutoriels.', 'text_domain' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'thumbnail', 'comments', 'revisions' ),
		'taxonomies'            => array( 'category', 'post_tag' ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
        'capability_type'       => 'page',
        'show_in_rest'          => true
	);
	register_post_type( 'tutos', $args );

}
add_action( 'init', 'tutos_post_type', 0 );
?>

Rqe : pour activer les chps additionnels dans un cpt, il faut ajouter ‘custom-fields’ dans supports.