So entfernen Sie den Link "+ Neue Kategorie hinzufügen" aus einer Kategorie-Metabox

9

Innerhalb einer Wordpress-Kategorie-Metabox oder eines benutzerdefinierten Taxonomiefelds gibt es einen Link mit dem Text "+ Neue Kategorie hinzufügen". Gibt es eine Möglichkeit, diesen Link vorzugsweise zu entfernen, ohne auf JS- oder CSS-Hacks zurückzugreifen, um ihn auszublenden? Eine Möglichkeit, es mit einem Filter oder einem Aktionshaken auszublenden, ist am besten.

Wenn es keinen Aktions-Hook oder keine Filtermethode gibt, um ihn zu entfernen, wäre ich als letztes Mittel für JS- und CSS-Lösungen offen.

Der Grund dafür ist, dass ich eine in Magento integrierte Wordpress-Installation habe und eine benutzerdefinierte Taxonomie namens "Marken" mit einer Liste von Marken aus der Magento-Datenbank erstelle und auffülle, damit ein Beitrag einer Marke zugewiesen werden kann. Dies bedeutet natürlich, dass ich nicht möchte, dass Benutzer ihre eigenen Begriffe hinzufügen können und nur die dynamisch hinzugefügten Marken auswählen können, um sie mit Magento synchron zu halten.

Danke.

Dwayne Charrington
quelle

Antworten:

14

Die Standard-Metaboxen werden in der Datei registriert wp-admin/includes/meta-boxes.php. Dort finden Sie die Funktion, post_categories_meta_box()die die Taxonomie-Metabox generiert. Derzeit ist kein Hook zum Filtern der Ausgabe verfügbar. Sie können jedoch eine der folgenden Aktionen ausführen:

  1. Verwenden Sie remove_meta_box()diese Option, um die vorhandene Kategorie-Metabox zu entfernen und Ihre eigene bei zu registrieren add_meta_box(). Kopieren und fügen Sie den vorhandenen Code in Ihre neue Metabox-Funktion ein und entfernen Sie den Codeblock von Zeile 345zu 367.
  2. Der sauberere Weg: Entfernen Sie die edit_termsFunktion aus Ihren Benutzerrollen mit remove_cap(). Wenn Sie in die Metabox-Funktion schauen, sehen 345Sie online eine if-Anweisung, die prüft, ob der Benutzer über die Fähigkeit verfügt edit_terms. Wenn ja, + Add New XYwird das angezeigt. Problem hier ist, der Name der Fähigkeit ist dynamisch und kann alles sein. Wenn jemand eine Taxonomie mit einer anderen Fähigkeitsbezeichnung registriert, funktioniert dies wahrscheinlich nicht (ungetestet).
Rofflox
quelle
1
Ah ja. Fähigkeiten sind eigentlich ein guter Weg. Ich möchte jedoch nicht nur eine bestimmte Fähigkeit aus anderen Taxonomien entfernen. Ich entschied, dass es am einfachsten war, den Link mit einem guten, altmodischen CSS zu verstecken. Danke für die tollen Vorschläge.
Dwayne Charrington
2
Ich kann den Beitrag von rofflox nicht kommentieren, aber die Funktion wurde anscheinend in "manage_categories" geändert
pkmatte
Danke! Dies ist die beste Methode, die ich finden konnte. Ich verwende diese Methode auf einer Multisite. Verwenden Sie daher die Funktion "setup_network", um zu verhindern, dass Site-Administratoren diese Funktionen für eine Taxonomie verwenden, die von einem Plugin hinzugefügt wird, das unbearbeitet bleiben muss.
Sam