web-dev-qa-db-fra.com

Racine limace de taxonomie retournant 404

J'ai le code suivant pour enregistrer un type de message personnalisé et une taxonomie correspondante:

register_post_type( 'gs_business_listings',
    array(
      'labels' => array(
        'name' => __( 'Local Businesses' ),
        'singular_name' => __( 'Local Businesses' )
      ),
      'public' => true,
            'supports' => array('title', 'editor', 'thumbnail', 'revisions'),
            'register_meta_box_cb' => array($this,'add_meta_boxes'),
            'rewrite' => array('slug'=> '%larger-region%/%regions%')
        )
  );

    register_taxonomy(
        'gs_business_region_harvey',
        'gs_business_listings',
        array(
            'labels' => array(
                'name' => 'Harvey County',
                'singular_name' => 'Region',
            ),
            'rewrite' => array( 'slug' => 'harvey-county', 'hierarchical' => true ),
            'hierarchical' => true,
            'has_archive' => true,
        )
    );

Je pense que l'accès à www.example.com/harvey-county afficherait une archive de tous les messages utilisant la taxonomie personnalisée. Mais je reçois un 404 non trouvé. Qu'est-ce que j'ai mal? Merci.

Remarque: actuellement, si j'accède à www.example.com/harvey-county/newton, la page d'archive correspondant au terme newton s'affiche correctement.

1
Joshua Goossen

Comme l'a dit Milo, il n'y a pas d'archive de taxonomie générale. Mais il était logique d'en avoir un dans ma situation. Voici ce que j'ai fait pour imiter une archive générale:

J'ai créé une page vierge dans Wordpress Admin nom Harvey County avec un slug harvey-county. Ensuite, j'ai ajouté un fichier modèle page-harvey-county.php à mon thème. J'ai copié le code de mon archive.php. J'ai modifié la portion de boucle pour qu'elle ressemble à ceci:

    <?php 
    $taxonomy_terms = get_terms( 'gs_business_region_harvey', array(
        'hide_empty' => 0,
        'fields' => 'ids'
    ) );
    $args = array(
       'post_type' => 'gs_business_listings',
       'tax_query' => array(
                        array(
                          'taxonomy' => 'gs_business_region_harvey',
                          'terms' => $taxonomy_terms
                          ),
                      ),
        );

        $query = new WP_Query( $args );

        if ( $query->have_posts() ) : ?>

                //header code 

                <?php
                // Start the Loop.
                $addressWrapper = array();
                $addresses = array();
                while ( $query->have_posts() ) : $query->the_post();

                 //Call get_template_part and such.
                 endwhile;

        endif; ?>

Cela fonctionne, mais me dérange un peu car ce n'est pas très sec, copier archive.php.

1
Joshua Goossen