最近在做一个项目,里面要主要是一些新闻发布系统,所以果断选择Wordpress去开发,既方便又快捷。

Wordpress就不多做介绍了,从其流行度就可以看出其强大程度了,它不仅仅是一个博客系统,它可以做很多很多事,我感觉我们公司的许多网站项目都是用它开发的,很方面。这次的项目也是用Wordpress,程序很简单,都是发布新闻什么的,只不过有些简单的处理而已。不过事情总是不像你认为的那样发展。老板要求要在后台实行多用户管理,咋一听真的没什么挑战力,因为Wordpress中很好实现这种功能,不过老板要的是不同的用户去限访问不同的版块,我是用post-type做的各版块,所以就是说根据用户权限去限制访问不同自定义类型的版块。

记得之前看到有一些插件可以实现类似的功能,所以既然可以省点事为什么还要自己去写呢,于是就在网上疯狂地搜索插件。这种插件真的蛮多的,在Wordpress官网搜索‘role’,一大堆插件出来了:

有时资源太多也是罪啊。。。。。

最终确定一个advanced-access-manager

感觉功能真心强大,几乎把该有的角色管理的功能全集成了。。赞一个。。。。

不过还不是我想要的。。。。。。。。。

没办法,只好自己改插件了。。

话不多说直接上代码(将model/role.php中的代码改成如下):

<?php
/*Copyright (C) <2011>  Vasyl Martyniuk <martyniuk.vasyl@gmail.com>This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program.  If not, see <http://www.gnu.org/licenses/>.*/
/*** Role Model Class** @package AAM* @subpackage Models* @author Vasyl Martyniuk <martyniuk.vasyl@gmail.com>* @copyrights Copyright © 2011 Vasyl Martyniuk* @license GNU General Public License {@link http://www.gnu.org/licenses/}*/
class mvb_Model_Role extends WP_Roles {function __construct() {parent::__construct();}/*** Create a New User's Role** Use add_role function from WP_Roles to create a new User Role** @param string User Role title* @return array Result*/public function createNewRole($newRoleTitle, $caps = array()) {$role_id = sanitize_title_with_dashes($newRoleTitle);$role_id = str_replace('-', '_', $role_id);$label = htmlspecialchars(trim($newRoleTitle));if ($this->add_role($role_id, $label, $caps)) {$status = 'success';} else {$status = 'error';}$result = array('result' => $status,'new_role' => $role_id,);return $result;}public function add_role($role, $display_name, $capabilities = array()) {$roles = mvb_Model_API::getRoleList(FALSE);if (mvb_Model_API::isNetworkPanel()){if (!isset($roles[$role])){$roles[$role] = array('name' => $display_name,'capabilities' => $capabilities);$result = mvb_Model_API::updateBlogOption('user_roles', $roles);}else{$result = FALSE;}}else{//Set the initial menu show(No menu will show)$config = mvb_Model_API::getBlogOption(WPACCESS_PREFIX . 'config_subscriber');                               $menu = $config->menu;//Set the initial capabilities(Editor's capabilities default)$caps = $roles['editor']['capabilities'];               $options = (object) array('menu' => $menu,'metaboxes' => array(),'menu_order' => array(),'restrictions' => array(),);$result1 = parent::add_role($role, $display_name, $caps);if($result1){$result = mvb_Model_API::updateBlogOption(WPACCESS_PREFIX . 'config_' . $role, $options);}else{$result = FALSE;}}return $result;}
}
?>

加上该代码后主要实现如下功能:

新建角色时会赋予角色默认不显示所以左侧菜单,也就是不能查看任何版块,另外新角色默认有‘editor’的权限。这样一来就很好地实现老板所说的功能了。

。。。。。。。。。。。。。。。。。。。

不过感觉自己修改的还是有限制,因为我是预先讲‘subscriber’角色的菜单显示默设为所以不显示,然后去读取,在继承到新角色,另外capabilities也是读取‘editor’的capabilities再继承的。因此就要保证‘subscriber’和‘editor’要预设好了。总之只是提供大家一个思路。大家有什么好的想法可以与我沟通联系啊。

转载于:https://blog.51cto.com/gtskk/1224112

修改Wordpress插件---advanced-access-manager.1.7.3---相关推荐

  1. Wordpress 修改 mysql 插件_WordPress批量查找替换修改文章内容的插件和代码

    修改过站内一些文章的永久链接,有没有办法修改站内所有相关的链接呀? 答案是有的. 批量替换WordPress数据库我们可以采取下面这两种方法:使用插件批量替换 使用数据库命令批量替换 替换方法一:使用 ...

  2. WordPress个人资料中直接修改用户名插件Username Changer

    默认情况下 WordPress 是不允许直接修改用户名的,所以在 WordPress 后台是没有地方可以修改用户名,如果你懂得 phpMyAdmin 或纯代码来修改用户名也是非常简单的,不过有些新手站 ...

  3. wordpress 插件_适用于您的网站的2015年顶级WordPress安全插件

    wordpress 插件 WordPress is the most used CMS as compared to any other CMS. The code behind WordPress ...

  4. 最全最佳的wordpress插件汇总推荐-php

    留言相关: 1.Akismet:最流行的反垃圾留言插件. 2.Spam Karma 2:又一个垃圾留言屏蔽插件,和Akismet相比,这个要更为复杂一些. 3.Threaded Comments:实现 ...

  5. wordpress插件_10个最佳WordPress论坛插件(比较)

    wordpress插件 Are you looking to add a community section on your WordPress site? Forums and discussion ...

  6. wordpress插件_摄影师的最佳WordPress照片插件

    wordpress插件 If you've done well enough to snap a group of photographs you deem worthy of display, th ...

  7. 13个您应该安装的WordPress插件

    Smashing Apps 发表了一篇<13个您应该安装的WordPress插件 >,介绍了13个不是一定需要按装但是非常值得一试的WordPress插件.目前这篇文章被Digg了896次 ...

  8. wordpress插件_9个最佳WordPress产品组合插件

    wordpress插件 Create your own WordPress theme with our tutorial Create a Bare-bones WordPress Theme Fr ...

  9. wordpress插件_13个适用于WordPress的免费用户管理插件

    wordpress插件 Are you managing a multi-user WordPress website? By default, WordPress comes with a buil ...

  10. wordpress插件_最好的WordPress购物车插件

    wordpress插件 WordPress is an extremely versatile platform, with a diverse range of capabilities. One ...

最新文章

  1. 文本文件、Excel文件上传下传
  2. 清华大学刘知远教授新作,图神经网络最佳解锁方式 | 送书福利
  3. 质数环问题c语言,素数环问题
  4. SAML request和response的一对典型例子,供将来参考
  5. 使用Xamarin.Forms的企业应用程序模式(电子书)--依赖注入
  6. 【BO】WEBI文件打开时提示Illegal access错误
  7. python 全文搜索 句子_python新玩法:用python进行文章摘要拿取,只需要一行代码
  8. GPS(北斗)拓展无线同步模块GSYN1000系列在电力、大坝、隧道、核电、密闭厂房的应用方案...
  9. 详解IOS开发应用之并发Dispatch Queues
  10. 利用python进行回归分析
  11. 常见算法的英文命名(排序、查找)
  12. 苹果手机识别图片文字方法
  13. 文件上传图片放大缩小进行截图上传
  14. windows 上搭建 sftp 服务器 --freesshd
  15. CSR8670 — 说说蓝牙音频常用的编解码格式
  16. JAVA在线观看视频教程完整版
  17. Excel的VLOOKUP函数及其用法
  18. “一阶数字低通滤波器”原理推导(含仿真和代码实现)
  19. IPD(集成产品开发)文一
  20. MybatisPlus中and和or的使用

热门文章

  1. android滚动视图实例,android实现自定义滚动条
  2. 传统HTML页面实现模块化加载
  3. Linux系统编程之进程间通信
  4. [转载]最小生成树-Prim算法和Kruskal算法
  5. linux之程序包管理器(rpm)
  6. linux下Eclipse连接真机调试Android应用程序
  7. Python英语单词查询
  8. redis java客户端封装_redis的java客户端Jedis简单封装
  9. 谷歌怎么找ajax请求,谷歌浏览器 - GET ajax请求失败
  10. vue 修改路由名字_Vue 路由设置title