Je suis un peu embêté à faire en sorte que le permalien personnalisé pour l'archive de type de message personnalisé (CPT) fonctionne.
J'ai enregistré mon CPT 'press_release' comme suit:
add_action('init', 'press_release_post_type_init');
function press_release_post_type_init() {
$labels = array(
'name' => _x('Press Releases', 'post type general name'),
'singular_name' => _x('Press Release', 'post type singular name'),
'add_new' => _x('Add New', 'Press Release'),
'add_new_item' => __('Add New Press Release'),
'edit_item' => __('Edit Press Release'),
'new_item' => __('New Press Release'),
'view_item' => __('View Press Release'),
'search_items' => __('Search Press Releases'),
'not_found' => __('No press release found'),
'not_found_in_trash' => __('No press release found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'has_archive' => 'press-release',
'rewrite' => array('slug' => 'press-release/%year%/%postname%','with_front' => false),
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'show_in_nav_menus' => false,
'menu_position' => 20,
'supports' => array(
'title',
'editor',
'author',
'revisions'
)
);
register_post_type('press_release', $args);
}
Pour le moment, si je vais à l'URL http://mysite.press-release
, j'arrive au modèle archive-press_release.php
, qui est correct.
Cependant, j'aimerais que mon permalien d'archive CPT soit du type press-release/%year%
J'ai essayé de spécifier la structure permalien ci-dessus lors de l'enregistrement de CPT:
'has_archive' => 'press-release/%year%'
Cependant, avec cette structure de lien permanent lorsque je passe à http://mysite.press-release
ou http://mysite.press-release/2011
dans les deux cas, je suis redirigé vers le modèle index.php
et non vers l'archive.
Qu'est-ce que j'ajoute pour que WordPress comprenne que press-release/%year%
, lien permanent avec une partie année facultative, constitue en fait les modèles d'archive?
J'apprécierais vraiment toute aide! J'espère que c'est possible.
Je prévoyais de construire mon propre code SQL dans le archive-press_release.php
pour obtenir les enregistrements de la bonne année.
Merci beaucoup, Dasha
Voici la solution:
archive-{POST_TYPE}.php
Maintenant, vos liens press-release/%year%
et press-release/%year%/%month%
devraient fonctionner.