ตัวกรองนี้จะช่วยให้คุณสามารถที่จะขยายฟังก์ชั่น ฟังก์ชั่นนี้ถูกเรียกโดยการแปลงความสามารถในการเมตาหนึ่งหรือมากกว่าหนึ่งความสามารถดั้งเดิม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
แต่บทความที่กล่าวถึงโดยปลั๊กอินJustin TadlockและProspressให้ตัวอย่างที่สมบูรณ์ของสิ่งนี้ แต่คุณสามารถปรับแต่งมันเองเพื่อเปลี่ยนความสามารถของระบบให้สมบูรณ์ถ้าคุณต้องการ