Як видалити посилання "+ Додати нову категорію" з метабокса категорії


9

Всередині метабокса категорії Wordpress або будь-якого спеціального вікна таксономії для цього питання є посилання з текстом "+ Додати нову категорію", чи є спосіб, як це посилання можна видалити бажано, не вдаючись до хаків JS або CSS, щоб приховати його? Найкращим способом приховати це за допомогою якогось фільтра чи гачка дій.

Якщо не існує гачка чи методу фільтра для його видалення, я був би відкритий до рішень JS та CSS в крайньому випадку.

Причиною, що я роблю це, є те, що в мене є установка Wordpress, інтегрована з Magento, і я створюю та заповнюю власну таксономію під назвою "бренди" зі списком марок із бази даних Magento, щоб посаду можна було призначити бренду. Очевидно, це означає, що я не хочу, щоб користувачі мали змогу додавати їх власними умовами та лише мати можливість вибирати бренди, додані в динамічному режимі, щоб підтримувати його в синхронізації з Magento.

Дякую.

Відповіді:


14

Метабокси за замовчуванням реєструються у файлі wp-admin/includes/meta-boxes.php. Там ви можете знайти функцію, post_categories_meta_box()яка генерує метаполе таксономії. Наразі немає гачка для фільтрації виводу. Але ви можете зробити одне з наступного:

  1. Використовуйте remove_meta_box()для видалення наявного метабокса категорії та зареєструйте свій власний add_meta_box(). Скопіюйте та вставте існуючий код у вашу нову функцію metabox та видаліть блок коду з рядка 345до 367.
  2. Чистіший спосіб: видаліть edit_termsможливості з ролей користувача remove_cap(). Якщо ви подивитесь на функцію метабокса, в рядку 345ви побачите if-оператор, який перевіряє, чи має користувач можливість edit_terms. Якщо так, на + Add New XYекрані відобразиться повідомлення. Проблема тут, назва можливості є динамічною і може бути будь-якою. Якщо хтось зареєструє таксономію з іншим іменем можливостей, це, ймовірно, не вийде (не перевірено).

1
Ага, так. Насправді дієздатність - це приємний спосіб. Однак я не хочу знімати цю здатність з інших таксономій лише однієї. Я вирішив приховати зв’язок із деяким старомодним CSS - найпростішим вибором. Дякую за чудові пропозиції.
Дуейн Чаррінгтон

2
Я не можу коментувати публікацію rofflox, але, схоже, можливість була змінена на "management_categories"
pkmatte

Дякую! Це найкращий метод, який я міг знайти, я використовую це на багатосайтовій основі, тому використовуючи можливість "setup_network", щоб обмежити адміністраторів сайту від використання цих можливостей для таксономії, доданої плагіном, який повинен залишатися без редагування.
Сем,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.