web-dev-qa-db-fra.com

Comment associer des taxonomies personnalisées à des types de publication personnalisés et faire fonctionner les permaliens?

Alors,

J'ai mon type de message personnalisé avec le slug /news . Et je veux que ma vue de catégorie soit /news/category/CATEGORYID .

Pour cela je crée ma taxonomie personnalisée:

add_action('init', 'create_allfilmnews_categories', 0);
function create_allfilmnews_categories() {
    $labels = array(
        'name' => _x( 'Categories', 'taxonomy general name' ),
        'singular_name' => _x( 'Category', 'taxonomy singular name' ),
        'search_items' =>  __( 'Search categories' ),
        'all_items' => __( 'All category' ),
        'parent_item' => __( 'Parent category' ),
        'parent_item_colon' => __( 'Parent category:' ),
        'edit_item' => __( 'Edit category' ),
        'update_item' => __( 'Update category' ),
        'add_new_item' => __( 'Add new category' ),
        'new_item_name' => __( 'New category name' ),
        'menu_name' => __( 'News categories' ),
    );  

    register_taxonomy('news_category', 'news', array(
        'hierarchical' => true,
        'labels' => $labels,
        'show_ui' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'category' ),
    ));
}

J'espérais que depuis qu'il est accroché à news custom post-type .. et que son slug est "category", j'espérais donc que naturellement fonctionnerait comme je voulais (/ news/category/CATEGORYID). Et utilisez mon modèle de catégorie personnalisé en créant simplement un fichier dans le répertoire du modèle: category-news_category.php .

Cependant, bien sûr, cela ne fonctionne pas.

Est-il même possible d'avoir une taxonomie personnalisée aka. catégories dans post-type personnalisé, qui fonctionnent parfaitement avec permalinks?

1
Kalle H. Väravas

Deux choses - je pense que l'URL de la catégorie serait: votredomaine.com/news_category/NEWS-CATEGORY-SLUG-HERE

Ainsi, par exemple, si vous avez créé une catégorie "titres en tête" dans votre taxonomie "news_category" ..., cela ressemblerait à ceci (en supposant que le slug pour "titres en tête" est "titres en tête"):

/ news_category/top-titres /

La deuxième chose ... Je pense que votre nom de modèle devrait être "taxonomy-news_category.php"

(édité pour ajouter - je ne pense pas que la slug puisse être une "catégorie" car celle-ci est déjà utilisée par WordPress .. donc cela peut causer un conflit en soi ... Je peux me tromper à ce sujet .. .)

1
Jennifer Stuart