我想限制我的作者在特定的父类别(受限制并由我创建)中发布,并允许他们在父类别的子类别(由每个作者创建)中创建和发布。
基本上,作者1仅限于在类别A中发布。他将在A类 – >子类别1等中创建和发布。
作者2限制在类别B中发布。他将在B类 – >子类别1等中创建和发布。
我发现代码运行良好,但并不完全符合我的要求。实际上,插件限制作者仅在他创建的类别中发布。这是我想要的,但是对于子类别以及将特定父类别分配给特定作者的内容。
public function exclusions( $exclusions ){
$exclusions .= " AND ( t.term_id IN ( $this->user_cats ) OR tt.taxonomy NOT IN ( 'category' ) )";
return $exclusions;
}
public function filter_post_page() {
//check post-type
$screen = get_current_screen();
if ( $screen->post_type != 'post' )
return;
//just Author and lower
if ( current_user_can('delete_others_posts') )
return;
$user_id = get_current_user_id();
$this->get_user_cats( $user_id );
if ( empty( $this->user_cats ) )
return;
add_filter( 'list_terms_exclusions', array( &$this, 'exclusions' ) );
}
public function filter_edit_page( $query ) {
if ( current_user_can('delete_others_posts') )
return;
$query->set( 'author', get_current_user_id() );
return $query;
}
}
new SW_Category_Restriction();