Mes messages principaux sont des nouvelles (catégorie "nouvelles"). Par conséquent, j'ai utilisé l'écriture d'URI globale au format suivant: /year/month/post-name
J'ai également des publications contenant des albums photo (catégorie "photo"), mais je souhaite leur donner une autre structure d'URI, à savoir: /category/post-name
dans laquelle la catégorie est photos
J'ai regardé sur Internet et j'ai trouvé ce lien (a catégorie, mais je pense dans la catégorie est meilleur) qui contient pas mal d'informations. Je me souviens aussi vaguement d'un crochet dans functions.php qui pourrait faire ceci:
'rewrite' => ...
Malheureusement, pour un Wordpress Newbee comme moi, cela ne suffit pas. Je n'arrive pas à comprendre comment faire cela. De l'aide? Merci.
Donc, si la catégorie est news => /year/month/post-name
par ex. /2012/10/test-post
Si autre catégorie, telle que photos ou vidéos => /category/[sub-category/)post-name
p. ex. /photos/(2012/)France
ou pour les vidéos: /videos/(2011/)concert-u2
J'ai fait ça. Jusqu'à présent, j'ai deux types de messages personnalisés (videos
et photos
). Je ne pense pas qu'il y en aura d'autres. Ce qui doit arriver: changez la structure de permalien des post-types personnalisés. Je veux qu'ils soient /photos/post-name
et /videos/post-name
. Les messages normaux devraient être /year/month/post-name
. J'ai ajouté ceci à mon functions.php
/* Add custom post-type (fotos) (added by Bram Vanroy) */
add_action( 'init', 'register_cpt_foto' );
function register_cpt_foto() {
$labels = array(
'name' => _x( 'fotos', 'foto' ),
'singular_name' => _x( 'foto', 'foto' ),
'add_new' => _x( 'Nieuw fotoalbum', 'foto' ),
'add_new_item' => _x( 'Voeg nieuw fotoalbum toe', 'foto' ),
'edit_item' => _x( 'Bewerk fotoalbum', 'foto' ),
'new_item' => _x( 'Nieuw fotoalbum', 'foto' ),
'view_item' => _x( 'Bekijk fotoalbum', 'foto' ),
'search_items' => _x( 'Zoek in fotoalbums', 'foto' ),
'not_found' => _x( 'Geen fotoalbums gevonden', 'foto' ),
'not_found_in_trash' => _x( 'Geen fotoalbums gevonden in de prullenmand', 'foto' ),
'parent_item_colon' => _x( 'Parent foto:', 'foto' ),
'menu_name' => _x( 'Foto\'s', 'foto' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'description' => 'Het posttype dat alle foto-albums verzorgt.',
'supports' => array( 'title', 'editor', 'excerpt', 'comments', 'page-attributes' ),
'taxonomies' => array( 'post_tag', 'page-category' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'page'
);
register_post_type( 'foto', $args );
}
/* Add custom post-type (videos) (added by Bram Vanroy) */
add_action( 'init', 'register_cpt_video' );
function register_cpt_video() {
$labels = array(
'name' => _x( 'videos', 'video' ),
'singular_name' => _x( 'video', 'video' ),
'add_new' => _x( 'Voeg nieuwe video toe', 'video' ),
'add_new_item' => _x( 'Voeg nieuwe video toe', 'video' ),
'edit_item' => _x( 'Bewerk video', 'video' ),
'new_item' => _x( 'Nieuwe video', 'video' ),
'view_item' => _x( 'Bekijk video', 'video' ),
'search_items' => _x( 'Zoek video\'s', 'video' ),
'not_found' => _x( 'Geen video\'s gevonden', 'video' ),
'not_found_in_trash' => _x( 'Geen video\'s gevonden in de prullenmand', 'video' ),
'parent_item_colon' => _x( 'Parent video:', 'video' ),
'menu_name' => _x( 'Video\'s', 'video' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'description' => 'Dit posttype wordt gebruikt om filmpjes te publiceren',
'supports' => array( 'title', 'editor', 'excerpt', 'comments', 'page-attributes' ),
'taxonomies' => array( 'post_tag', 'page-category' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'page'
);
register_post_type( 'video', $args );
}
Et je suppose que j'ai besoin de règles de réécriture ici, mais je ne sais pas comment!
Je l'ai résolu moi-même (avec l'aide de vous les gars): C'était simple comme tout:
'rewrite' => array(
'slug' => 'videos',
'with_front' => false
),