wordpress - 如何从 WordPress 对象缓存中清除用户权限?

标签 wordpress permissions memcached wpmu

我在 Amazon EC2、RDS、Nginx、PHP-FPM、APC、BatCache 和 Memcached 上运行高度优化的 WordPress 多站点 (WPMU) 安装。

APC 仅在 PHP 级别运行,以缓存操作码,但我不会将其用于 WordPress 的对象缓存。为此,我使用 BatCache+Memcached。

所有这些都运行得非常好,在负载下速度超快等等,但我刚刚遇到了一个意想不到的问题。

我以测试用户身份登录,创建了一个新博客,当我登录/wp-admin 时,它告诉我我没有权限。我退出,重新登录,同样的问题。然后我注销,重新启动 Memcached,重新登录,问题就解决了。

我几乎可以肯定这与缓存相关。我可能需要加入新的站点创建过程并从 Memcached 中清除一些键,但我不确定如何找到要清除的正确键。

请帮忙! ;)

最佳答案

我不太确定这是否与用户角色功能有关,但如果是...... 这应该是一个将管理员功能重置为默认值的小脚本:

add_action( 'after_setup_theme', 'add_roles_caps' );
function add_roles_caps() {

  $caps = array(
    "edit_post",
    "read_post",
    "delete_post",
    "edit_posts",
    ...
  );
  $roles = array(
    get_role( 'administrator' ),
    get_role( 'subscriber' ),
  );
  foreach ($roles as $role) {
    foreach ($caps as $cap) {
      $role->add_cap( $cap );
    }
  }
}

这是一个示例..您应该使用列出的所有功能填充 $caps 数组 here

关于wordpress - 如何从 WordPress 对象缓存中清除用户权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422088/

相关文章:

php - 使用 WordPress 发布元数据函​​数的 HTML 表单中的关联数组

php - 如果循环不返回任何帖子,如何隐藏带有文本的 div?

php - Wordpress bloginfo ('stylesheet_url'),这是从哪里来的?

memcached - 在中找不到类 'Memcache'

php - Wordpress woocommerce 第二和第三产品图像模糊

docker - 无法在 Docker 中挂载文件

google-apps-script - MailApp.sendEmail 错误消息 - "do not have permission to call sendEmail"

安卓权限 : Opposite to "Full Internet Access"

java - 如何在 Java 中连接池 memcached (spymemcached)

java - 从内存缓存中转换 Java 对象的最快方法