map_meta_cap 필터의 사용은 무엇입니까?


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 TadlockProspress 플러그인 이 언급 한 기사는 이에 대한 완전한 예를 제공합니다. 그러나 원하는 경우 기능 시스템을 완전히 뒤집도록 사용자 정의 할 수 있습니다.



2

이것은 기능의 필터입니다 map_meta_cap(). 설명 에서이 함수는 필요한 경우 다양한 조건을 확인 하여보다 구체적인 (post 작성자가 can_do_this_stuffcan_do_that_stuff_also ) 전달 된 일반 기능 ( can_do_stuff ) 을 작성하는 것으로 보입니다 .

불행히도 Codex에는 문서화되어 있지 않으며 WP 3.0.1 소스 에서이 함수의 단일 직접 호출을 찾을 수 없습니다.

이 기능을 사용했거나 무언가에 사용하고 싶습니까? 나는 그것이 사용되지 않는 것처럼 보이기 때문에 아마도이 기능에 대한 새롭고 더 나은 방법이있을 것입니다.


이 플러그인 작성자는 다음을 사용하는 것 같습니다 : github.com/Prospress/Prospress/blob/master/pp-posts/…
rsman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.