web-dev-qa-db-fra.com

Débarrassez-vous des archives de catégories, tags et auteurs de Wordpress?

J'ai cherché sur le net sans succès sur ce qui devrait être une chose facile.

J'ai un blog hautement personnalisé avec des pages, des sous-pages et des publications. Bien que je me fie beaucoup à l’utilisation des catégories et des balises, je ne veux pas qu’elles soient visibles dans une URL. Il en va de même pour les auteurs et les catégories de dates. En gros, je ne veux pas générer d'erreur 404 si quelqu'un tente d'accéder à ces pages. Quelqu'un peut me diriger dans la bonne direction? Merci!

Les éléments suivants ne doivent pas être accessibles:

example.net/category/books/

example.net/tag/ebooks/

example.net/author/dickens/

exemple.net/2012/10/

9
psot

en s'appuyant sur la réponse de chrisguitarguy, voici un extrait rapide que vous pouvez déposer dans le fichier functions.php de votre thème pour effectuer un travail.

add_action('template_redirect', 'wpse69948_archive_disabler');
function wpse69948_archive_disabler()
{
    if(is_tag() || is_category() || is_date() || is_author())
    {
        global $wp_query;
        $wp_query->set_404();
    }
}
5
Bainternet

J'ai écrit un plugin pour cela - qui nécessite quelques mises à jour, mais il devrait quand même fonctionner correctement.

En gros, vous attachez quelque part tard après que WordPress sache quelle page est demandée (comme template_redirect), utilisez l’une des fonctions conditionnelles et utilisez soit $wp_query->set_404() ou redirigez simplement l’utilisateur vers une page de votre choix.

Pour désactiver les catégories, les balises, les auteurs et les archives de date:

<?php
add_action('template_redirect', 'wpse69948_tag_disabler');
function wpse69948_tag_disabler()
{
    if(is_tag() || is_category() || is_date() || is_author())
    {
        global $wp_query;
        $wp_query->set_404();
    }
}
7
chrisguitarguy