J'ai un type de message personnalisé en cours d'exécution appelé services:
// Services
function services_cpt() {
$labels = array(
'name' => _x( 'Services', 'post type general name' ),
'singular_name' => _x( 'Service', 'post type singular name' ),
'add_new' => _x( 'Add New', 'production' ),
'add_new_item' => __( 'Add New Service' ),
'edit_item' => __( 'Edit Service' ),
'new_item' => __( 'New Service' ),
'all_items' => __( 'All Services' ),
'view_item' => __( 'View Service' ),
'search_items' => __( 'Search Services' ),
'not_found' => __( 'No services found' ),
'not_found_in_trash' => __( 'No services found in the Trash' ),
'parent_item_colon' => '',
'menu_name' => 'Services'
);
$args = array(
'labels' => $labels,
'description' => 'Holds our services and service specific data',
'public' => true,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'has_archive' => true,
);
register_post_type( 'services', $args );
}
add_action( 'init', 'services_cpt' );
Je voudrais utiliser un modèle de page pour afficher les messages à la place de archive-services.php. J'ai construit le modèle de page suivant:
<?php
/*
Template Name: Services
*/
// Get header
get_header(); ?>
<div id="primary">
<?php $loop = new WP_Query( array( 'post_type' => 'services', 'posts_per_page' => -1 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<section class="col third">
<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail('medium'); ?></a>
<h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<?php the_content(); ?>
</section>
<!-- End loop -->
<?php endwhile; wp_reset_query(); ?>
<!-- End primary -->
</div>
<?php get_footer(); ?>
Lorsque je vais à la page sur le front-end, il affiche le fichier archive.php par défaut. Je ne peux pas comprendre ce que je fais mal. Toute aide est très appréciée :)
Vous obtenez probablement un conflit de réécriture avec l'argument has_archive
ici:
$args = array(
'labels' => $labels,
'description' => 'Holds our services and service specific data',
'public' => true,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'has_archive' => true,
);
Définissez has_archive
sur false
si vous ne souhaitez pas que l'archive générée automatiquement soit générée.
Je ne vois pas vraiment la logique de ne pas utiliser le système de gabarit.