Poster ses customs posts type sur une page dédiée

Poster ses customs posts type sur une page dédiée

Dans wordpress, une fois qu’on a crée un custom post type, étant donné qu’ils ne sont pas considérés comme des articles et qu’on ne peut pas par défaut les lier à une catégorie, il va falloir créer une page pour les lister.
Voici le code à insérer dans le fichier functions.php.

Première étape: création d’un custom post type (ici formation)

add_action('init', 'formation_register');
function formation_register() {
    $labels = array(
        'name' => 'Formations',
        'singular_name' => 'formation',
        'add_new' => 'Ajouter ',
        'add_new_item' => 'Ajouter une formation',
        'edit_item' => 'Editer la formation',
        'new_item' => 'Nouvelle formation',
        'all_items' => 'Toutes les formations',
        'view_item' => 'Voir la formation',
        'search_items' => 'Recherche formation',
        'not_found' => 'Aucun formation trouvée',
        'not_found_in_trash' => 'Aucune formation dans la corbeille',
        'parent_item_colon' => '',
        'menu_name' => 'Formations'
    );
    $args = array(
        'exclude_from_search' => true, //camoufler la page dans la recherche
        'labels' => $labels,
        'public' => false,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'has_archive' => true,
        'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
        'taxonomies' => array('category', 'post_tag'),
        'rewrite' => array('slug' => 'formation', 'with_front' => false),
        
    );
    register_post_type('formation', $args);

}

Deuxième étape: création du fichier php qui listera nos custom posts

On crée en dur un fichier php qui sera notre modèle de page ‘formation’ . A l’intérieur,  on crée une nouvelle loop dédiée, qui va nous ramener nos custom posts type:

$args = array( 'post_type' => 'formation', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
	the_title();
	echo '<div>';
	the_content();
	echo '</div>';
endwhile;

Ensuite, dans l’admin on crée une notre page en lui donnant comme modèle de page ‘formation‘ que l’on vient de créer. La page vous listera donc tous vos custom posts ‘formation‘.

 

 

 

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.