Пример #1
0
 /**
  * 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;
 }
Пример #2
0
/**
 * 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;
}