web-dev-qa-db-fra.com

Comment faire pour supprimer le lien "+ Ajouter une nouvelle catégorie" d'une catégorie Metabox

À l'intérieur d'une métaboxe de catégorie Wordpress ou de n'importe quelle boîte de taxonomie personnalisée, un lien avec le texte "+ Ajouter une nouvelle catégorie" existe-t-il un moyen de supprimer ce lien de préférence sans recourir à des hacks JS ou CSS pour le masquer? Un moyen de le cacher en utilisant un filtre ou un crochet d’action serait préférable.

S'il n'existe aucune méthode de filtrage d'action ou de filtrage pour la supprimer, je serais ouvert aux solutions JS et CSS en dernier recours.

Je le fais parce que j’ai une installation Wordpress intégrée à Magento et que je crée et rajoute une taxonomie personnalisée appelée "marques" avec une liste de marques de la base de données Magento afin qu’une publication puisse être affectée à une marque. Évidemment, cela signifie que je ne veux pas que les utilisateurs puissent ajouter leurs propres termes et ne puissent choisir que les marques ajoutées de manière dynamique pour le maintenir synchronisé avec Magento.

Je vous remercie.

9
Dwayne Charrington

Les métaboxes par défaut sont enregistrés dans le fichier wp-admin/includes/meta-boxes.php. Vous y trouverez la fonction post_categories_meta_box() qui générera la taxonomie metabox. Actuellement, il n'y a pas de hook disponible pour filtrer la sortie. Mais vous pouvez faire l’une des choses suivantes:

  1. Utilisez remove_meta_box() pour supprimer la catégorie metabox existante et enregistrez la vôtre auprès de add_meta_box(). Copiez-collez le code existant dans votre nouvelle fonction metabox et supprimez le bloc de code de la ligne 345 à 367.
  2. La manière la plus propre: Supprimez la fonctionnalité edit_terms de vos rôles d'utilisateur avec remove_cap(). Si vous regardez dans la fonction metabox, à la ligne 345, vous pouvez voir une instruction if qui vérifie si l'utilisateur a la capacité edit_terms. Si tel est le cas, le + Add New XY sera affiché. Problème ici, le nom de la capacité est dynamique et pourrait être n'importe quoi. Si quelqu'un enregistre une taxonomie avec un nom de capacité différent, cela ne fonctionnera probablement pas (non testé).
14
rofflox