J'ai trouvé que cet endroit était une bonne source d'information dans le passé grâce à beaucoup de recherches sur Google pour les problèmes que j'ai rencontrés. Ma question concerne les règles de réécriture prolixes utilisées par WordPress.
J'ai configuré un type de message personnalisé appelé projet et j'ai enregistré une taxonomie personnalisée appelée projets . Tout fonctionne très bien, sauf pour les options de réécriture de slug car elles finissent par être en conflit - très probablement en raison des règles de réécriture.
Fondamentalement, c'est la structure que je cherche à réaliser:
example.com/work/%taxonomy%/%post_name%/
(pour les postes)example.com/work/%taxonomy%/
(liste des articles appartenant à un terme de taxonomie particulier)example.com/work/
(va à page-work.php qui inclut taxonomy.php pour lister toutes les publications associées à cette taxonomie)
Voici le code que j'ai jusqu'à présent, mais j'ai besoin d'aide pour écrire les règles WP_Rewrite car c'est le bit sur lequel je suis un peu perplexe.
$labels = array(
'name' => _x('Projects', 'post type general name'),
'singular_name' => _x('Project', 'post type singular name'),
'add_new' => _x('Add New', 'project item'),
'add_new_item' => __('Add New Project'),
'edit_item' => __('Edit Project'),
'new_item' => __('New Project'),
'view_item' => __('View Project'),
'search_items' => __('Search Projects'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'hierarchical' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false),
'show_ui' => true,
'_builtin' => false, // It's a custom post type, not built in!
'capability_type' => 'post',
'query_var' => "project", // This goes to the WP_Query schema
'menu_position' => null,
'supports' => array('title','editor','thumbnail', 'comments', 'author', 'excerpt')
);
register_post_type('project' , $args);
// Showcase Taxonomy
register_taxonomy('projects', array('project'), array(
'public' => true,
'hierarchical' => true,
'label' => 'Project Categories',
'singular_label' => 'Project Category',
'query_var' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false, 'hierarchical'=>true)
)
);
Merci beaucoup pour votre aide! :-)
Réponses:
J'espère que cela peut résoudre votre problème
ce que vous devez créer est archive-work.php (votre archive de type de publication) et taxonomy.php qui vous servira pour afficher votre archive de taxonomie personnalisée.
la source
J'ai eu le même problème et après beaucoup de difficultés, je me suis retrouvé avec cette solution.
Ajoutez simplement ceci à votre code
la source
functions.php
dans ce cas. Le code d'un plugin et d'un thème est exactement le même, la seule différence est dans les thèmes dans lesquels il va toujoursfunctions.php
ou dans un fichier inclusfunctions.php
after_switch_theme
crochet, c'est nouveau à 3.3 (IIRC).Une explication plus détaillée se trouve sur un autre post , mais voici les parties de base que vous devez ajouter:
Enregistrez vos taxonomies et cpt comme vous le faites. Assurez-vous que votre slug de réécriture pour le taxo est "nom de base" et le slug de réécriture pour le cpt est "nom de base /% tax_name%".
Dites à wordpress quoi faire avec "% tax_name%" comme ceci:
la source