web-dev-qa-db-fra.com

Comment désactiver complètement une archive de taxonomie sur le front-end?

J'ai enregistré trois taxonomies personnalisées. Ces trois taxonomies personnalisées sont attachées à mon type de publication personnalisé.

Il n’existe qu’une taxonomie sur les trois enregistrées, que je souhaiterais voir inaccessible sur le site Web.

Quelle est la meilleure solution pour cela?

J'ai joué avec la spécification d'arguments différents lors de l'enregistrement de la taxonomie, mais rien ne semble fonctionner.

$args['show_in_nav_menus'] = false;
$args['query_var'] = false;
$args['public'] = false;

Devrais-je simplement accrocher template_redirect et faire une vérification is_tax()? Si c'est la taxonomie que je veux désactiver, redirigez-vous simplement vers l'archive de type publication personnalisée?

2
Michael Ecklund

la réponse de s_ha_dum n'a pas fonctionné pour moi, mais cela a fonctionné:

/**
 * Completely disable term archives for this taxonomy.
 * @param  string $taxonomy WordPress taxnomy name
 */
function kill_taxonomy_archive($taxonomy){

    add_action('pre_get_posts', function($qry) {

            if (is_admin()) return;

            if (is_tax($taxonomy)){
                $qry->set_404();
            }

        }

    );

}
11
Chris Herbert