Jak usunąć link „+ Dodaj nową kategorię” z metaboksu kategorii

9

Wewnątrz metaboksu kategorii Wordpress lub dowolnego niestandardowego pola taksonomii znajduje się link z tekstem „+ Dodaj nową kategorię”. Czy istnieje sposób, aby ten link można usunąć najlepiej bez uciekania się do hacków JS lub CSS, aby go ukryć? Najlepszym sposobem byłoby ukrycie go za pomocą jakiegoś filtra lub haka akcji.

Jeśli nie ma metody haka akcji lub metody filtrowania, aby ją usunąć, byłbym otwarty na rozwiązania JS i CSS w ostateczności.

Powodem, dla którego to robię, jest to, że mam zintegrowaną instalację Wordpress z Magento oraz tworzę i wypełniam niestandardową taksonomię zwaną „markami” listą marek z bazy danych Magento, aby można było przypisać post do marki. Oczywiście oznacza to, że nie chcę, aby użytkownicy mogli dodawać własne warunki i móc dynamicznie wybierać marki dodawane w celu synchronizacji z Magento.

Dziękuję Ci.

Dwayne Charrington
źródło

Odpowiedzi:

14

Domyślne metaboksy są rejestrowane w pliku wp-admin/includes/meta-boxes.php. Tam znajdziesz funkcję, post_categories_meta_box()która wygeneruje metaboks taksonomii. Obecnie nie ma dostępnego haka do filtrowania danych wyjściowych. Ale możesz wykonać jedną z następujących czynności:

  1. Użyj, remove_meta_box()aby usunąć istniejący metaboks kategorii i zarejestrować własny add_meta_box(). Skopiuj i wklej istniejący kod do nowej funkcji metabox i usuń blok kodu z wiersza 345do 367.
  2. Czystszy sposób: usuń edit_termsmożliwości z ról użytkownika za pomocą remove_cap(). Jeśli spojrzysz na funkcję metabox, on-line 345zobaczysz instrukcję if, która sprawdza, czy użytkownik ma taką możliwość edit_terms. Jeśli tak, + Add New XYzostanie wyświetlony. Problem tutaj, nazwa zdolności jest dynamiczna i może być dowolna. Jeśli ktoś zarejestruje taksonomię z inną nazwą zdolności, prawdopodobnie nie będzie to działać (niesprawdzone).
rofflox
źródło
1
O tak. Możliwości to właściwie fajny sposób. Nie chcę jednak usuwać tej zdolności z innych systematyk tylko z jednej konkretnej. Zdecydowałem, że ukrywanie linku w dobrym, staroświeckim CSS było najłatwiejszym wyborem. Dzięki za wspaniałe sugestie.
Dwayne Charrington
2
Nie mogę komentować postu rofflox, ale wygląda na to, że zmieniono tę opcję na „manage_categories”
pkmatte
Dziękuję Ci! Jest to najlepsza metoda, jaką mogłem znaleźć, używam tego na wielu stronach, więc używam funkcji „setup_network”, aby ograniczyć administratorom witryny korzystanie z tych możliwości w taksonomii dodanej przez wtyczkę, która musi pozostać niezmieniona.
Sam