web-dev-qa-db-fra.com

Comment éviter la duplication des publications lors de la visualisation d'un terme de taxonomie personnalisé

Ma question est assez basique. J'ai un archive.php et à l'intérieur j'ai la boucle principale comme ceci:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Do stuff here

<?php endwhile; endif; ?>

Fonctionne bien pour les catégories mais pas pour les taxonomies personnalisées. J'ai une taxonomie personnalisée appelée "Type". Je vais au menu WordPress et ajoute le terme "Spa Break" de la taxonomie "Type".

Cela fonctionne, mais je reçois environ 10 de chaque message pour chaque message. Tous les identifiants pour les posts en double sont les mêmes, il suffit de lister 10 de chaque.

Je n'ai ajouté aucune requête personnalisée ou quelque chose du genre.

Des indices sur ce qui pourrait se passer?

Voici ma taxonomie:

function build_taxonomies(){
register_taxonomy("type", array("venue"), array("hierarchical" => true, "label" => "Types", "singular_label" => "Type", "rewrite" => array('slug' => 'type'))); 

}

Voici mon code de type de poste:

function create_post_type() 
{
    $labels = array(
        'name' => __( 'Venue' ),
        'singular_name' => __( 'Venue' ),
        'rewrite' => array('slug' => 'venues'),
        'add_new' => _x('Add New', 'venue'),
        'add_new_item' => __('Add New Venue'),
        'edit_item' => __('Edit Venue'),
        'new_item' => __('New Venue'),
        'view_item' => __('View Venue'),
        'search_items' => __('Search Venue'),
        'not_found' =>  __('No venues found'),
        'not_found_in_trash' => __('No venues found in Trash'), 
        'parent_item_colon' => ''
      );

      $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true, 
        'query_var' => true,
        'rewrite' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => null,
        'supports' => array('title','editor','thumbnail', 'custom-fields', 'comments')
      ); 

      register_post_type('venue',$args);
}

Merci d'avance.

2
user2005

Le code que vous avez posté me semble généralement correct mais, autant que je sache, le paramètre de réécriture doit être de type array ou string, pas bool:

register_taxonomy(
  'type', 
  array('venue'), 
  array(
    'label' => 'Types',
    'singular_label' => 'Type', 
    'rewrite' => array('slug' => 'type', 'hierarchical' => true),
    'hierarchical' => true, 
  )
);

C'est probablement utile. L'exemple de code sur Les taxonomies personnalisées (Codex Wordpress) ont fonctionné pour moi. Comme je n'ai aucune idée du type d'objet venue que vous utilisez, je n'ai pas pu vérifier votre code directement.

1
hakre