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

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

基本上,作者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/tech/wp/260113.html

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

相关推荐

发表回复

登录后才能评论

WordPress 数据库错误: [Duplicate entry '82-4d3f5343d1f1b32d21fd4fb47d88d6b2' for key 'task_id_source_url_key']
insert into wp_autoblog_queue(task_id,source_url,source_url_key,create_date_time,not_check_stoped,post_interval) values(82,'https://www.idc.net/help/os/linux/page/6438/','4d3f5343d1f1b32d21fd4fb47d88d6b2',1735303554,0,0)