การใช้ map_meta_cap Filter คืออะไร


20

การใช้map_meta_capตัวกรองคืออะไร? ตัวกรองนี้ไม่ได้บันทึกไว้ที่ใดก็ได้ ฉันมีความคิดที่ชัดเจนเกี่ยวกับสิ่งที่อาจเป็น:

ใช้เพื่อแม็พการอนุญาตของผู้ใช้กับการดำเนินการกับโพสต์

มันมีความหมายอะไรกันแน่? หากเป็นไปได้โปรดให้ตัวอย่างโค้ดตัวอย่างของการใช้งานที่ถูกต้อง

คำตอบ:


25

ตัวกรองนี้จะช่วยให้คุณสามารถที่จะขยายฟังก์ชั่น ฟังก์ชั่นนี้ถูกเรียกโดยการแปลงความสามารถในการเมตาหนึ่งหรือมากกว่าหนึ่งความสามารถดั้งเดิมmap_meta_cap()WP_User->has_cap()

ตัวอย่างเช่นคุณต้องการทราบว่าผู้ใช้ปัจจุบันควรจะได้รับอนุญาตให้แก้ไขการโพสต์ในปัจจุบันความสามารถในการเมตา ขึ้นอยู่กับปัจจัยบางประการ: ผู้ใช้เป็นผู้เขียนโพสต์หรือไม่ โพสต์นี้เผยแพร่แล้วหรือยัง โพสต์ถูกทำเครื่องหมายว่าเป็นส่วนตัวหรือไม่ ความสามารถดั้งเดิมมี, , และคุณสามารถกำหนดเหล่านี้ไปบทบาทของผู้ใช้ ตรวจสอบผู้เขียนและสถานะของการโพสต์และส่งกลับชุดความสามารถดั้งเดิมที่ถูกต้องผู้ใช้นี้จะต้องอนุญาตให้มีการแก้ไขการโพสต์ (ถ้าโพสต์ถูกเขียนโดยคนอื่นและเผยแพร่มันจะกลับมาดังนั้นผู้ใช้จะต้องมีความสามารถทั้ง ดำเนินการต่อไป)edit_postedit_postsedit_published_postsedit_others_postsedit_private_postsmap_meta_cap()array('edit_others_posts', 'edit_published_posts')

การเพิ่มแนวคิดเรื่องความสามารถของเมตาและความสามารถดั้งเดิมช่วยให้คุณสามารถรักษาWP_Userคลาสพื้นฐานให้ปลอดจากความรู้เกี่ยวกับการโพสต์และสถานะการโพสต์และอะไรก็ตามและเพียงแค่มุ่งเน้นไปที่ความสามารถ การแปลงที่แท้จริงอยู่ในฟังก์ชั่นภายนอก, map_meta_cap().

ตัวกรองmap_meta_capช่วยให้คุณสามารถขยายฟังก์ชันการทำงานตัวอย่างเช่นเมื่อใช้โพสต์ที่กำหนดเอง ฉันเชื่อว่ามีการสนับสนุนขั้นพื้นฐานหากคุณตั้งค่าcapabilitiesอาร์กิวเมนต์register_post_typeแต่บทความที่กล่าวถึงโดยปลั๊กอินJustin TadlockและProspressให้ตัวอย่างที่สมบูรณ์ของสิ่งนี้ แต่คุณสามารถปรับแต่งมันเองเพื่อเปลี่ยนความสามารถของระบบให้สมบูรณ์ถ้าคุณต้องการ



2

map_meta_cap()นี่คือตัวกรองของฟังก์ชั่น จากคำอธิบายฟังก์ชั่นนี้ดูเหมือนจะเขียนความสามารถทั่วไป ( can_do_stuff ) ส่งผ่านไปยังที่เฉพาะเจาะจงมากขึ้น (ถ้าผู้เขียนโพสต์แล้วcan_do_this_stuffและcan_do_that_stuff_also ) ตรวจสอบเงื่อนไขต่าง ๆ หากจำเป็น

น่าเสียดายที่มันไม่ได้บันทึกไว้ใน Codex และฉันไม่สามารถค้นหาการโทรโดยตรงของฟังก์ชั่นนี้ได้ในแหล่ง WP 3.0.1

คุณเคยพบการใช้งานฟังก์ชั่นนี้หรือต้องการที่จะใช้มันเพื่ออะไรบางอย่าง? ฉันคิดว่าเนื่องจากมันดูเหมือนจะไม่ได้ใช้อาจมีวิธีที่ใหม่กว่าและดีกว่าสำหรับฟังก์ชันนี้


ดูเหมือนว่าผู้เขียนปลั๊กอินนี้จะใช้มัน: github.com/Prospress/Prospress/blob/master/pp-posts/…
rsman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.