禁用用户在前端编辑_POST或删除_POST的功能

时间:2018-09-18 作者:Faisal Khurshid

我已经在网站前端创建了一个后期编辑表单,只有用户登录后,才可以在前端访问此表单。现在,出于某种原因,在满足特定条件后,我想禁用用户编辑或删除帖子并保持其只读的功能。

我已经修改了上述用户的功能(使用插件),并通过user_can( $user, $capability ) 用户不再具有edit_postsdelete_posts 能力。

现在的问题是,用户仍然可以通过前端表单或删除链接编辑或删除帖子。我有什么遗漏吗?我是否必须手动连接到某个操作/筛选器才能停止编辑/删除\\u posts操作?如果是,我该怎么做?

Note: 所有相关的edit_*_postsdelete_*_posts 也被禁用。

1 个回复
SO网友:Adarsh

通过使用此功能,我们可以删除页面或帖子的删除选项。

function wp_restrict_page_deletion( $caps, $cap, $user_id, $args ) 
 {
   $post_id = $args[0];
   if ( $cap === \'delete_post\' && $post_id === your post id* ) 
     {
       $caps[] = \'do_not_allow\';
     }
   return $caps;
 }
 add_filter( \'map_meta_cap\', \'wp_restrict_page_deletion\', 10, 4 );
我认为这件适合你的要求。

您的帖子id*->这里您需要提供页面或帖子的帖子id,这就是您需要删除的选项。

结束