puis-je empêcher les utilisateurs WP (même admin) de supprimer des catégories personnalisées?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/4439

Question

Je suis en train d'écrire un plugin où j'ai la taxonomie personnalisée (catégorie). Je veux éviter

  • tout utilisateur
  • la suppression de certains
  • catégories personnalisées .

Est-il possible comment le faire.

Soit de dire que la catégorie avec ID1-ID10 personne (admin inclus) peut supprimer.

Était-ce utile?

La solution

Si vous voulez éviter la suppression d'un seul ou d'une liste d'ID de catégorie au sein de l'administration, vous pouvez éviter en bloquant toutes les demandes qui suppriment la catégorie.

Il n'y a pas crochet vous pouvez faire wordpress utiliser pour utiliser facilement, mais il y a toujours un travail autour. Dans mon exemple, j'utilise les crochets check_admin_referer et check_ajax_referer (notez la faute de frappe dans le nom de crochet) combiné à un contrôle si la demande est en fait un à supprimer une catégorie (quelque chose de suppression dans le taxnonomy de category).

Exemple Incontournables Utilisez Plugin : Wordpress Bloc Catégorie Exemple suppression

En cas de suppression d'une catégorie bloquée, vous obtiendrez soit Vous n'avez pas la permission de le faire. message (Ajax) ou Cette catégorie est bloquée pour la suppression. message et vous devez revenir en arrière avec votre navigateur.

Autres conseils

vous pouvez utiliser

<?php $cats = wp_list_categories('echo'=>FALSE);?>

pour trouver les catégories, puis recherchez ceux que vous voulez. Ensuite, vous pouvez utiliser

<?php wp_set_object_terms( $object_id, $missing_cat, 'category', TRUE ); ?>

pour les placer. Vous aurez besoin d'un poste qui ne vous dérange pas d'avoir toutes les catégories affectées à un poste privé fonctionnerait bien ici.

Ainsi, le code final pourrait ressembler à:

<?php 
function cats_protector(){
    $current_cats = wp_list_categories('echo'=>FALSE);
    $my_cats = array('list','of','required','categories');

    foreach ($my_cats as $cat){
        if(!in_array($cat, $current_cats){
            wp_set_object_terms( 15, $cat, 'category', TRUE );
        }
    }
}
add_action('init','cats_protector');
?>

Ce code est droit-de-la-encéphalique, frais et non testés.

Il convient de noter que ce ne sera pas empêcher la suppression, il suffit de les mettre directement en arrière tant qu'il est appelé initialisation.

Pour éviter la suppression, vous pouvez regarder cacher l'option avec CSS dans le panneau d'administration.

Je le fais avec une solution de contournement en utilisant le plugin suivant pour css chargement personnalisé dans le panneau d'administration: http://wordpress.org/extend/plugins/custom-admin-css/ Et cachant alors l'option de suppression pour les postes requis / pages ou catégories.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top