我想你应该可以用user_has_cap
filter.
因为该过滤器通过$args
对于edit_post
功能,您可以使用该功能检查当前用户是否已被人为授予此功能,如果是,请强制edit_post
该实例的真实性。
根据上面链接的文档中的示例进行构建,您将看到如下内容:
add_filter( \'user_has_cap\', \'wpse_227418_edit_extra_posts\', 10, 3 );
function wpse_227418_edit_extra_posts($allcaps, $cap, $args){
if($args[0] != "edit_post"){
return $allcaps; // bail out, we\'re not talking about editing a post here
}
if(get_post_meta($args[2], "additional_author", true) == $args[1]){
// get the meta key \'additional author\', checking that it matches the User ID we\'re looking at the capabilities for
$allcaps[$cap[0]] = true; // make sure edit_posts is true for this author and this post ID
}
return $allcaps;
}
这是很快组合起来的,并且没有经过测试,所以您肯定想测试和修改以满足您的需要,但我认为这将满足您的需要。当然,请调整上面提到的meta\\u键,使其与您想要的键相匹配。
参考文献: