web-dev-qa-db-fra.com

Modèle pour publication personnalisée avec taxonomie personnalisée

Le thème que je développe est essentiellement un portefeuille, dans lequel les projets sont de type publication personnalisée et divisés en catégories (taxonomies personnalisées). Voici comment je définis les deux:

$labels = array(
    'name' => _x('My Portfolio', 'post type general name'),
    'singular_name' => _x('Portfolio Item', 'post type singular name'),
    'add_new' => _x('Add New', 'portfolio item'),
    'add_new_item' => _x('Add New Portfolio Item', 'add new portfolio item'),
    'edit_item' => _x('Edit Portfolio Item', 'edit portfolio item'),
    'new_item' => _x('New Portfolio Item', 'new portfolio item'),
    'view_item' => __('View Portfolio Item'),
    'search_items' => __('Search Portfolio'),
    'not_found' => __('Nothing found'),
    'not_found_in_trash' => __('Nothing found in Trash'),
    'parent_item_colon' => ''
);
$args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'menu_icon' => null,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array(null)
);
register_post_type('portfolio', $args);

register_taxonomy('project_category', array('portfolio'), array(
    'hierarchical' => true,
    'label' => "Project Categories",
    'singular_label' => "Project Category",
    'rewrite' => true
));

Donc, sur la page d'accueil, je liste tous les termes de la taxe. "project_category" et je souhaite un fichier de modèle pour un seul terme (par exemple, "jQuery Plugins" ou "WordPress Themes") dans lequel je peux répertorier tous les projets avec ce terme.

J'ai regardé dans la hiérarchie de modèles WP et je crois que le modèle dont j'ai besoin est

taxonomy-$taxonomy.php

Mon fichier s'appelle taxonomy-project_category.php et ne le trouve pas. J'ai aussi essayé avec taxonomy.php, term.php, archive.php ... sans succès. Je pense que le problème est avec les liens:

<a href="<?php echo $term->slug; ?>"><?php echo $term->name; ?></a>

Des idées? À votre santé

1
Nikolay Dyankov

D'après les réponses, il semble que le problème ne soit pas lié au modèle, mais à une URL incorrecte.

Pour obtenir le lien d'un terme de taxonomie, vous pouvez utiliser get_term_link() :

  <a href="<?php echo get_term_link($term,'product_category')?>"><?php echo $term->name; ?></a>
1
Stephen Harris

Les modèles de taxonomie supportent taxonomy-{taxonomy}-{slug}.php, alors avez-vous essayé:

taxonomy-project_category-jquery-plugins.php  
// for the term Jquery Plugins, please alter to actually match what your term slug is

Ce format de nom a l’air un peu bizarre, vous pouvez envisager d’utiliser plutôt project-category.

Activez également le débogage et installez la barre de débogage.

0
Wyck

J'ai trouvé la solution moi-même, je la poste juste au cas où quelqu'un trouverait cette question.

Le problème était dans le lien, voici à quoi cela devrait ressembler:

<a href="<?php echo get_bloginfo('url') . '/project_category/' . $term->slug; ?>"><?php echo $term->name; ?></a>
0
Nikolay Dyankov