Kava  |  Multipurpose WP Theme with Elementor Page Builder

My cart

Comment supprimer les termes de taxonomie personnalisées dans le fichier uninstall.php du plugin ?

Les extensions et les thèmes WordPress ont souvent recours aux taxonomies afin de classer vos contenus et ainsi proposer des filtres de recherche pour vos utilisateurs.

N.B : l’astuce présentée ici ne s’applique pas aux catégories et aux étiquettes de WordPress. De plus, ce type de modification n’est pas sans conséquence : il est probable que vous deviez adapter votre thème et / ou les extensions concernées.

En natif, les catégories et les étiquettes sont des taxonomies pour les articles mais la plupart des projets en utilisent pour couvrir leurs propres besoins. Un simple hook nous permet de les désactiver.

Version 1

Dans le fichier functions.php de votre thème ou via un mu-plugins, collez ces lignes de code :

<?php if (!defined('ABSPATH')) die('Restricted Area');


/*
* Plugin Name: Unregister Taxonomies
* Description: Properly disable any WordPress taxonomy.
* Version: 20160901
* Author: Aurélien Denis (Neticpro)
* Author URI: https://wpchannel.com/desactiver-taxonomie-type-de-contenu-personnalise/
*/


function wpc_unregister_job_listing_type() {
	unregister_taxonomy('job_listing_type'); // Specify the taxonomy to unregister
}
add_action('init', 'wpc_unregister_job_listing_type');

Créez et nommez votre fichier mu-unregister-taxonomies.php

Vous devez modifier la ligne 12 et spécifier les taxonomies que vous souhaitez désactiver. Pour l’identifier, ouvrez celle concernée dans votre back-office puis récupérez l’identifiant à partir de l’URL. Un exemple ci-dessous avec l’extension WP Job Manager pour les types d’offres :

/wp-admin/edit-tags.php?taxonomy=job_listing_type&post_type=job_listing

Ici, la taxonomie est job_listing_type.

Notez que la désactivation d’une taxonomie ne supprime en rien les termes qui lui auraient été préalablement affectés. Je vous recommande donc de les supprimer en amont. Une fois le code en place, vous obtiendrez le message suivant : Taxonomie non valide

Version 2

Ci-dessous, un autre code qui vérifie de trouver en base la taxonomie, et la supprime dans les règles.

function delete_custom_terms($taxonomy){
    global $wpdb;

    $query = 'SELECT t.name, t.term_id
            FROM ' . $wpdb->terms . ' AS t
            INNER JOIN ' . $wpdb->term_taxonomy . ' AS tt
            ON t.term_id = tt.term_id
            WHERE tt.taxonomy = "' . $taxonomy . '"';

    $terms = $wpdb->get_results($query);

    foreach ($terms as $term) {
        wp_delete_term( $term->term_id, $taxonomy );
    }
}

// Delete all custom terms for this taxonomy
delete_custom_terms(LISTING_TAXONOMY);

Appelez votre fonction de nettoyage lors de la désinstallation de votre plugin via register_uninstall_hook

Sources

  • https://wordpress.stackexchange.com/users/29049/edeneye
  • https://wpchannel.com/wordpress/tutoriels-wordpress/desactiver-taxonomie-wordpress

Scroll to Top
Skip to content