限制作者在类别中发布并创建子类别

我想限制我的作者在特定的父类别(受限制并由我创建)中发布,并允许他们在父类别的子类别(由每个作者创建)中创建和发布。

基本上,作者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();

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/260113.html

(0)
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐

发表回复

登录后才能评论