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_post
edit_posts
edit_published_posts
edit_others_posts
edit_private_posts
map_meta_cap()
array('edit_others_posts', 'edit_published_posts')
Bu meta yetenekler ve ilkel yetenekler fikrini eklemek , temel WP_User
sı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. capabilities
Tartış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.