可以编辑自己的帖子,但不能创建新帖子

时间:2014-09-11 作者:Tommixoft

我找不到任何地方可以禁止创建新项目,但允许编辑分配给用户的帖子。

假设在我的系统中,有一个管理员创建一些帖子,然后指定某个特定用户作为该帖子的作者,但我不能让该用户只能编辑,它可以编辑和创建新帖子,或者什么都不做。

另外,我不想为此使用任何插件。因为这是我的插件。

1 个回复
SO网友:bobbingwide

我有同样的要求。我相信这是一只虫子。我今天提出了一个WordPress跟踪报告,报告了我的发现。

https://core.trac.wordpress.org/ticket/29714

看看你是否有同样的问题。

Workaround

我还开发了一种变通方法,可以让您同时取得进步。

为“user\\u has\\u cap”创建筛选函数。在该筛选函数中,当检查的功能是您定义的功能时(例如“编辑您的CPT”),添加以下逻辑。

global $pagenow;
if ( $pagenow == "edit.php" && isset( $_REQUEST[\'post_type\'] ) ) {
        $pagenow .= \'?post_type=\' . $_REQUEST[\'post_type\' ];
}
这将允许失败的函数(user\\u can\\u access\\u admin\\u page())返回true。

10月11日更新。解决方案的第一部分有一些不必要的副作用。为了克服这些问题,你需要更多的代码。

add_filter( "add_menu_classes", "oik_sites_add_menu_classes" );
/**
 * Implement "add_menu_classes" filter for oik-sites
 *
 * Part 2 of the Workaround for TRAC #29714  
 */
function oik_sites_add_menu_classes( $menu ) {
  global $pagenow;
  if ( false !== strpos( $pagenow, "edit.php" ) ) {
    $pagenow = "edit.php";
  }
  return( $menu );
}

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?