Map_meta_cap Filtresinin Kullanımı Nedir?


20

map_meta_capFiltre kullanımı nedir ? Bu filtre hiçbir yerde belgelenmemiştir. Ne olabilir hakkında net bir fikrim var:

Kullanıcının izinlerini yayınlardaki işlemlerle eşlemek için kullanılır.

Tam olarak ne anlama geliyor? Mümkünse lütfen doğru kullanımıyla ilgili bazı örnek kod örnekleri verin.

Yanıtlar:


25

Bu filtre genişletme olanağını sağlar işlevi . Bu işlev , bir meta yeteneği bir veya daha fazla ilkel yeteneğe dönüştürmek için çağrılır .map_meta_cap()WP_User->has_cap()

Örneğin, geçerli kullanıcı Geçerli yayını, düzenlemesine izin gerekip gerekmediğini bilmek istiyorum meta yeteneği . Bu bazı faktörlere bağlıdır: kullanıcı yazının yazarı mı? Yayın zaten yayınlanmış mı? Gönderi gizli olarak işaretlenmiş mi? İlkel yetenekleri vardır , , ve : Eğer bu atayabilirsiniz kullanıcı rolleri . yazının yazarını ve durumunu kontrol eder ve bu kullanıcının yazının düzenlenmesine izin vermek zorunda olması gereken doğru ilkel yetenek kümesini döndürür (yayın başka biri tarafından yazılır ve yayınlanırsa, geri dönecektir , bu nedenle kullanıcının her iki yeteneğe de sahip olması gerekir) devam et).edit_postedit_postsedit_published_postsedit_others_postsedit_private_postsmap_meta_cap()array('edit_others_posts', 'edit_published_posts')

Bu meta yetenekler ve ilkel yetenekler fikrini eklemek , temel WP_Usersınıfı mesajlar ve posta durumları ve her türlü bilgiden uzak tutmanızı ve sadece yeteneklere odaklanmanızı sağlar. Gerçek dönüşüm harici bir işlevdedir map_meta_cap().

Filtremap_meta_cap , örneğin özel yayınlar kullanırken işlevselliği genişletmenize olanak tanır. capabilitiesTartışmayı ayarlarsanız temel destek sağlandığını düşünüyorum register_post_type, ancak Justin Tadlock ve Prospress eklentisinin bahsi geçen makalesi bunun tam örneklerini sunuyor. Ancak, isterseniz yetenek sistemini tamamen tersine çevirmek için özelleştirebilirsiniz.



2

Bu işlev filtresidir map_meta_cap(). Açıklamadan bu işlev , gerekirse çeşitli koşulları kontrol ederek daha spesifik (genel olarak yazarın can_do_this_stuff ve can_do_that_stuff_also ) içine geçen genel yeteneği ( can_do_stuff ) yazdığı görülmektedir .

Ne yazık ki Codex belgelenmemiştir ve WP 3.0.1 kaynağında bu işlevin tek bir doğrudan çağrı bulamıyorum.

Bu işlevin kullanımıyla mı karşılaştınız veya bir şey için mi kullanmak istediniz? Sanırım kullanılmıyor gibi görünüyor, muhtemelen bu işlevsellik için daha yeni ve daha iyi yollar vardır.


Bu eklenti yazarı kullanıyor gibi görünüyor: github.com/Prospress/Prospress/blob/master/pp-posts/…
rsman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.