it-swarm.dev

Co je to použití map_meta_cap filtru?

Jaké je použití map_meta_cap filter? Tento filtr není nikde zdokumentován. Mám nejasnou představu o tom, co by to mohlo být:

Používá se k mapování oprávnění uživatele na operace na příspěvcích.

Na co přesně to je? Pokud je to možné, uveďte příklad ukázkového kódu jeho správného použití.

19
rsman

Tento filtr umožňuje rozšířit funkce map_meta_cap() . Tato funkce je volána WP_User->has_cap() převést meta schopnost na jednu nebo více primitivních schopností .

Chcete například vědět, zda má být aktuálnímu uživateli povoleno upravovat aktuální příspěvek, edit_post meta schopnost . To záleží na některých faktorech: je uživatel autorem příspěvku? Je tento příspěvek již publikován? Je příspěvek označen jako soukromý? Primitivní schopnosti jsou edit_posts, edit_published_posts, edit_others_posts a edit_private_posts: můžete je přiřadit uživatelské role . map_meta_cap() kontroluje autora a stav příspěvku a vrací správný soubor primitivních schopností tento uživatel musí mít možnost povolit editaci příspěvku (pokud je příspěvek napsán někým jiným a publikován, vrátí array('edit_others_posts', 'edit_published_posts'), uživatel musí mít obě možnosti pokračovat).

Přidání této myšlenky meta schopností a primitivní schopnosti umožňuje udržet základní WP_User třídu bez znalosti postů a post statusů a cokoliv, a jen se zaměřit na schopnosti. Skutečná konverze je v externí funkci map_meta_cap().

Filtr map_meta_cap umožňuje rozšířit funkce, například při použití vlastních příspěvků. Věřím, že základní podpora je poskytována, pokud nastavíte capabilities argument register_post_type , ale zmíněný článek o Justin Tadlock a Prospress plugin poskytuje kompletní příklady. Pokud si to však přejete, můžete si jej přizpůsobit tak, aby zcela změnil systém schopností.

24
Jan Fabry

Tento filtr lze použít k mapování možností meta pro vlastní typy příspěvků. V tomto článku je dobrý ukázkový kód:

http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types

6
sorich87

Jedná se o filtr funkce map_meta_cap(). Z popisu se zdá, že tato funkce zapisuje obecnou schopnost ( can_do_stuff ) předávanou do specifičtější (pokud autor příspěvku pak can_do_this_stuff a can_do_that_stuff_also ), v případě potřeby kontroluje různé podmínky.

Bohužel to není v Codexu zdokumentováno a nemohu najít jediný přímý odkaz na tuto funkci ve zdroji WP 3.0.1.

Setkali jste se s použitím této funkce nebo chcete něco použít? Předpokládám, že se nezdá, že by se to dalo použít, jsou zde pravděpodobně novější a lepší způsoby této funkce.

2
Rarst