/** * Add dynamically created default options based on available post types and taxonomies * * @return void */ public function enrich_defaults() { $user_roles = WPSEO_Utils::get_roles(); $filtered_user_roles = apply_filters('wpseo_sitemaps_supported_user_roles', $user_roles); if (is_array($filtered_user_roles) && $filtered_user_roles !== array()) { foreach ($filtered_user_roles as $role_name => $role_value) { $this->defaults['user_role-' . $role_name . '-not_in_sitemap'] = false; unset($user_role); } unset($role_name, $role_value); } unset($user_roles, $filtered_user_roles); $post_type_names = get_post_types(array('public' => true), 'names'); $filtered_post_types = apply_filters('wpseo_sitemaps_supported_post_types', $post_type_names); if (is_array($filtered_post_types) && $filtered_post_types !== array()) { foreach ($filtered_post_types as $pt) { if ($pt !== 'attachment') { $this->defaults['post_types-' . $pt . '-not_in_sitemap'] = false; } else { $this->defaults['post_types-' . $pt . '-not_in_sitemap'] = true; } } unset($pt); } unset($post_type_names, $filtered_post_types); $taxonomy_objects = get_taxonomies(array('public' => true), 'objects'); $filtered_taxonomies = apply_filters('wpseo_sitemaps_supported_taxonomies', $taxonomy_objects); if (is_array($filtered_taxonomies) && $filtered_taxonomies !== array()) { foreach ($filtered_taxonomies as $tax) { if (isset($tax->labels->name) && trim($tax->labels->name) != '') { $this->defaults['taxonomies-' . $tax->name . '-not_in_sitemap'] = false; } } unset($tax); } unset($taxonomy_objects, $filtered_taxonomies); }
/** * List all the available user roles * * @deprecated 1.6.1 * @deprecated use WPSEO_Utils::get_roles() * @see WPSEO_Utils::get_roles() * * @return array $roles */ function wpseo_get_roles() { _deprecated_function(__FUNCTION__, 'WPSEO 1.6.1', 'WPSEO_Utils::get_roles()'); return WPSEO_Utils::get_roles(); }
$yform->textinput('entries-per-page', __('Max entries per sitemap', 'wordpress-seo')); ?> </div> <div id="user-sitemap" class="wpseotab"> <?php $yform->checkbox('disable_author_sitemap', __('Disable author/user sitemap', 'wordpress-seo'), false); ?> <div id="xml_user_block"> <p><strong><?php _e('Exclude users without posts', 'wordpress-seo'); ?> </strong><br/> <?php $yform->checkbox('disable_author_noposts', __('Disable all users with zero posts', 'wordpress-seo'), false); $roles = WPSEO_Utils::get_roles(); if (is_array($roles) && $roles !== array()) { echo '<p><strong>' . __('Exclude user roles', 'wordpress-seo') . '</strong><br/>'; echo __('Please check the appropriate box below if there\'s a user role that you do <strong>NOT</strong> want to include in your sitemap:', 'wordpress-seo') . '</p>'; foreach ($roles as $role_key => $role_name) { $yform->checkbox('user_role-' . $role_key . '-not_in_sitemap', $role_name); } } ?> </div> </div> <div id="post-types" class="wpseotab"> <?php $post_types = apply_filters('wpseo_sitemaps_supported_post_types', get_post_types(array('public' => true), 'objects'));
/** * Retrieve array of roles, excluded in settings. * * @return array */ protected function get_excluded_roles() { static $excluded_roles; if (isset($excluded_roles)) { return $excluded_roles; } $options = WPSEO_Options::get_all(); $roles = WPSEO_Utils::get_roles(); foreach ($roles as $role_slug => $role_name) { if (!empty($options["user_role-{$role_slug}-not_in_sitemap"])) { $excluded_roles[] = $role_name; } } if (!empty($excluded_roles)) { // Otherwise it's handled by who=>authors query. $excluded_roles[] = 'Subscriber'; } return $excluded_roles; }