/** * Set the role_slugs global * * @since 1.0.0 * * @return void */ public function set_role_slugs() { // Get the default role slugs. $defaults = ba_eas_get_default_role_slugs(); // Merge system roles with any customizations we may have. $role_slugs = array_replace_recursive($defaults, get_option('_ba_eas_role_slugs', array())); foreach ($role_slugs as $role => $details) { if (empty($defaults[$role])) { unset($role_slugs[$role]); } } $this->role_slugs = $role_slugs; }
/** * Sanitize the custom Role-Based Author Base slugs. * * @since 1.0.0 * * @param array $role_slugs An array of role slugs. * * @return array An array of sanitized, role-based author slugs. */ function ba_eas_admin_setting_sanitize_callback_role_slugs($role_slugs = array()) { // Get default role slugs. $defaults = ba_eas_get_default_role_slugs(); // Sanitize the slugs passed via POST. foreach ($role_slugs as $role => $details) { // If the role has been removed, we don't need to save it. if (empty($defaults[$role])) { unset($role_slugs[$role]); continue; } // Sanitize the passed role slug. $slug = sanitize_title($details['slug']); // Make sure we have a slug. if (empty($slug) && !empty($defaults[$role]['slug'])) { $slug = $defaults[$role]['slug']; } // Remove the role if we don't have a slug. if (empty($slug)) { unset($role_slugs[$role]); // We made it through, so set the slug. } else { $role_slugs[$role]['slug'] = $slug; } } // Merge our changes to make sure we've got everything. $role_slugs = array_replace_recursive($defaults, $role_slugs); // Set BA_Edit_Author_Slug::role_slugs for later use. ba_eas()->role_slugs = $role_slugs; return $role_slugs; }