Support » Requests and Feedback » function _init_caps()

  • A really short question as I searched the forum for similar topics and didn’t get the right answer:

    Why is the database field “capabilities” in $prefix.”usermeta” connected to the database tables’ prefix?

    That doesn’t make any sense to me, as I got a problem just yesterday: After changing the tables’ name from wp_* into v4_wp_* I didn’t have any (admin) rights anymore. Why? Because the field “capabilities” was fix connected to the last tables’ prefix name. So everybody changing the tables’ prefix name after an installation should run into the same trouble.

    So, If none’s against it, I would prefer to change those lines:

    167		function _init_caps() {
    168			global $wpdb;
    169	-		$this->cap_key = $wpdb->prefix . 'capabilities';
    	+		$this->cap_key = 'capabilities';
    170			$this->caps = &$this->{$this->cap_key};
    171			if ( ! is_array($this->caps) )
    172				$this->caps = array();
    172			$this->get_role_caps();
    173		}

    …same as for the old “user_level”(?).

  • The topic ‘function _init_caps()’ is closed to new replies.