Цей фільтр дозволяє продовжити на map_meta_cap()функцію . Ця функція викликаєтьсяWP_User->has_cap() перетворенням мета-можливості в одну або кілька примітивних можливостей .
Наприклад, ви хочете знати , чи повинен поточний користувач буде дозволено редагувати поточну запис, в edit_postмета - можливості . Це залежить від деяких факторів: чи є користувачем автор публікації? Чи публікація вже опублікована? Чи позначена публікація як приватна? Примітивні можливості є edit_posts, edit_published_posts, edit_others_postsі edit_private_postsви можете призначити їх ролі користувача . map_meta_cap()перевіряє автора та статус публікації та повертає правильний набір примітивних можливостей, який повинен мати цей користувач, щоб дозволити редагування публікації (якщо публікацію написав хтось інший та опублікований, вона повернеться array('edit_others_posts', 'edit_published_posts'), тому користувач повинен мати обидві можливості продовжувати).
Додавання цієї ідеї мета-можливостей та примітивних можливостей дозволяє вам не мати базового WP_Userкласу вільним від знань про посади та статуси публікацій і будь-чого іншого, а просто зосередитись на можливостях. Фактичне перетворення знаходиться в зовнішній функції, map_meta_cap().
Фільтрmap_meta_cap дозволяє розширити функціонал, наприклад, під час використання користувацьких публікацій. Я вважаю, що основна підтримка надається, якщо ви встановите capabilitiesаргументи register_post_type, але згадана стаття Джастіна Тадлока та плагіна Prospress надає повні приклади цього. Але ви можете налаштувати його, щоб повністю перетворити систему можливостей, якщо хочете.