Come rimuovere il collegamento "+ Aggiungi nuova categoria" da una categoria Metabox


9

All'interno di una metabox di categoria Wordpress o di qualsiasi casella di tassonomia personalizzata del caso esiste un collegamento con il testo "+ Aggiungi nuova categoria", esiste un modo per rimuovere questo collegamento preferibilmente senza ricorrere a hack JS o CSS per nasconderlo? Un modo per nasconderlo usando un qualche tipo di filtro o gancio di azione sarebbe la cosa migliore.

Se non esiste alcun metodo di hook o filtro di azione per rimuoverlo, sarei aperto alle soluzioni JS e CSS come ultima risorsa.

Il motivo per cui lo sto facendo è perché ho un'installazione di Wordpress integrata con Magento e sto creando e popolando una tassonomia personalizzata chiamata "marchi" con un elenco di marchi dal database Magento in modo che un post possa essere assegnato a un marchio. Ovviamente questo significa che non voglio che gli utenti siano in grado di aggiungere secondo i propri termini e di poter solo scegliere i marchi aggiunti in modo dinamico per mantenerlo sincronizzato con Magento.

Grazie.

Risposte:


14

I metabox predefiniti sono registrati nel file wp-admin/includes/meta-boxes.php. Qui puoi trovare la funzione post_categories_meta_box()che genererà la tassonomia metabox. Attualmente non è disponibile un hook per filtrare l'output. Ma puoi effettuare una delle seguenti operazioni:

  1. Utilizzare remove_meta_box()per rimuovere la categoria esistente metabox e registrarsi con add_meta_box(). Copia e incolla il codice esistente nella nuova funzione metabox e rimuovi il blocco di codice dalla riga 345a 367.
  2. Il modo più pulito: rimuovi la edit_termsfunzionalità dai ruoli utente con remove_cap(). Se guardi nella funzione metabox, on line 345puoi vedere un'istruzione if che verifica se l'utente ha le capacità edit_terms. In tal caso, + Add New XYverrà visualizzato. Problema qui, il nome della funzionalità è dinamico e potrebbe essere qualsiasi cosa. Se qualcuno registra una tassonomia con una diversa denominazione delle capacità, probabilmente non funzionerà (non testato).

1
Ah sì. Le funzionalità sono in realtà un bel modo. Tuttavia, non voglio rimuovere l'abilità da altre tassonomie solo una in particolare. Ho deciso di nascondere il collegamento con un buon vecchio stile CSS era la scelta più semplice. Grazie per gli ottimi suggerimenti.
Dwayne Charrington,

2
Non posso commentare il post di rofflox, ma la funzionalità sembra essere stata cambiata in "manage_categories"
pkmatte

Grazie! Questo è il metodo migliore che ho trovato, lo sto usando su un sito multiplo, quindi uso la capacità "setup_network" per limitare gli amministratori del sito dall'uso di queste capacità per una tassonomia aggiunta da un plugin che deve rimanere inedito.
Sam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.