Utilisation d'un type d'article personnalisé avec taxonomie personnalisée Je recherche une structure d'URL personnalisée de/post-type/custom-taxonomy/nom-article.
J'ai cherché et lu sur Permaliens: type de message personnalisé -> taxonomie personnalisée -> post et créer une structure de lien permanent avec des taxonomies personnalisées et des types de publication personnalisés tels que nom de base/taxe-parent/taxe-enfant/nom-type-post-personnalisé (et plusieurs autres, principalement ceux-ci) mais j'ai toujours des problèmes auxquels je ne trouve pas de réponse.
Le type de message personnalisé et la taxonomie fonctionnent bien, l’URL indique comment je le veux lorsque je clique sur le message, mais au lieu de mon message, je reçois une erreur 404. Je suis entré dans les permaliens et j'ai économisé un million de fois, tout en obtenant ce 404.
Tout d'abord, j'enregistre la taxonomie:
register_taxonomy( 'mediacentral_type',
array('ssd-mediacentral'),
array('hierarchical' => true,
'labels' => array(
'name' => __( 'Categories', 'ssd' ),
'singular_name' => __( 'Category', 'ssd' ),
'search_items' => __( 'Search Categories', 'ssd' ),
'all_items' => __( 'All Categories', 'ssd' ),
'parent_item' => __( 'Parent Category', 'ssd' ),
'parent_item_colon' => __( 'Parent Category:', 'ssd' ),
'edit_item' => __( 'Edit Categories', 'ssd' ),
'update_item' => __( 'Update Category', 'ssd' ),
'add_new_item' => __( 'Add New Category', 'ssd' ),
'new_item_name' => __( 'New Post Category', 'ssd' )
),
'show_admin_column' => true,
'show_ui' => true,
'public' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'media-central', 'with_front' => false ),
)
);
Puis les tags,
Ensuite, le type de message:
register_post_type( 'ssd-mediacentral',
array( 'labels' => array(
'name' => __( 'Media Central', 'ssd' ),
'singular_name' => __( 'Post', 'ssd' ),
'all_items' => __( 'All Posts', 'ssd' ),
'add_new' => __( 'Add New Post', 'ssd' ),
'add_new_item' => __( 'Add Post', 'ssd' ),
'edit' => __( 'Edit', 'ssd' ),
'edit_item' => __( 'Edit Post', 'ssd' ),
'new_item' => __( 'New Post', 'ssd' ),
'view_item' => __( 'View Post', 'ssd' ),
'search_items' => __( 'Search Posts', 'ssd' ),
'not_found' => __( 'Nothing found in the Database.', 'ssd' ),
'not_found_in_trash' => __( 'Nothing found in Trash', 'ssd' ),
'parent_item_colon' => ''
),
'description' => __( 'SSD Media Central Posts', 'ssd' ),
'public' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'query_var' => true,
'menu_position' => 8,
'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png',
'rewrite' => array( 'slug' => 'media-central/%mc_type%', 'with_front' => false ),
'has_archive' => 'media-central',
'capability_type' => 'post',
'hierarchical' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'sticky')
)
);
Puis le filtre:
function wpa_mc_permalinks( $post_link, $post ){
if ( is_object( $post ) && $post->post_type == 'ssd-mediacentral' ){
$terms = wp_get_object_terms( $post->ID, 'mediacentral_type' );
if( $terms ){
return str_replace( '%mc_type%' , $terms[0]->slug , $post_link );
}
}
return $post_link;
}
add_filter( 'post_type_link', 'wpa_mc_permalinks', 1, 2 );
Maintenant, quand je vais à ma page de messages/media-central et que je clique sur un message nommé 'test-podcast', il passe à l'URL/media-central/podcasts/test-podcast, mais j'obtiens un 404. Je ne sais pas pourquoi cela s'affiche un 404 et je suis sur le point de le laisser tomber, toute aide serait appréciée.
Avoir au fond de cela.
Je suis parti de zéro avec un tout nouveau type de contenu et la première réponse de la solution ci-dessus a fonctionné pour moi.
J'avais encore quelques problèmes de doublons lors de la tentative de résolution du problème initial, mais j'ai pu faire un peu de rangement pour régler ce problème.