在删除评论元框的情况下启用帖子评论

时间:2011-06-08 作者:Dave Konopka

我在插件中为我正在处理的网站创建了一个自定义帖子类型。我允许分配了自定义角色的用户添加/编辑/删除自定义帖子类型。我想给这些用户尽可能少的功能以外的管理张贴。

所以我用了remove_meta_box 通过插件为这些用户删除对话帖子编辑屏幕上的几个面板。我禁用的元框之一是commentsstatusdiv,它包含用于注释状态和trackback的表单元素。

如果缺少comments status表单元素,则comment_status 字段设置为off。我想为帖子类型设置默认评论,并阻止此角色的用户更改评论设置。但当用户保存评论后,状态设置为关闭。

我可以强制设置wp_insert_post_data 滤器但我不想为管理员重写。我希望管理员能够控制。

如何在默认情况下强制打开注释状态,并防止特定角色的用户更改注释状态,同时仍允许管理员打开/关闭注释状态?

1 个回复
最合适的回答,由SO网友:Dave Konopka 整理而成

这就是我的结局。对于访问权限有限的用户,我在post guid为空时设置注释。否则,我将完全删除这些用户的comment\\u status字段。这将默认启用新帖子到评论,防止受限访问用户编辑将其关闭,同时允许管理员覆盖打开/关闭的设置。

add_filter( \'wp_insert_post_data\', \'handle_comments_setting\' );
function handle_comments_setting( $data ) {
  if ( current_user_can( \'limited_role_name\' )) {
    if ( $data[\'guid\'] == \'\') {
      //Default new posts to allow comments
      $data[\'comment_status\'] = "open";        
    } else {
      //Otherwise ignore comment setting for community_member role users
      unset($data[\'comment_status\']);
    }
  }
  return $data;
}

结束

相关推荐

收到警告:MANAGE_POSTS_CUSTOM_COLUMN()缺少参数2?

我创建了一个自定义帖子类型和两个自定义分类法,并将它们显示在“管理帖子”部分,但我收到以下警告:警告:在/home/aleche23/alexchen中,manage\\u posts\\u custom\\u column()缺少参数2。信息/wp内容/主题/techozoic流体/功能/自定义帖子类型。php在线95图片:<?php /** * Create the Blocks custom post type and the Sections custom tax