【问题标题】:How do I clear user permissions from the WordPress object cache?如何从 WordPress 对象缓存中清除用户权限?
【发布时间】:2012-11-05 12:04:17
【问题描述】:

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

APC 仅在 PHP 级别运行,用于缓存操作码,但我没有将它用于 WordPress 的对象缓存。为此,我使用的是 BatCache+Memcached。

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

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

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

请帮忙! ;)

【问题讨论】:

    标签: wordpress permissions memcached wpmu


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2014-10-23
      • 2011-08-21
      • 2014-06-01
      • 1970-01-01
      相关资源
      最近更新 更多