/** * Hide admin bar for non-administrators (optimized version) */ function vikinger_optimized_hide_admin_bar() { if (!current_user_can('administrator') && !current_user_can('editor')) { show_admin_bar(false); } } add_action('after_setup_theme', 'vikinger_optimized_hide_admin_bar'); /** * Limit GamiPress achievements per page for better performance */ function vikinger_optimized_gamipress_achievements_per_page($query) { if (!is_admin() && $query->is_main_query()) { // Limit achievements on badges/quests/ranks pages if (is_page_template('page_badges.php') || is_page_template('page_quests.php') || is_page_template('page_ranks.php')) { $query->set('posts_per_page', 10); } } } add_action('pre_get_posts', 'vikinger_optimized_gamipress_achievements_per_page'); /** * Filter GamiPress achievements query for pagination */ function vikinger_optimized_gamipress_filter_achievements($args) { // Limit to 10 items per page for better performance if (!isset($args['posts_per_page'])) { $args['posts_per_page'] = 10; } return $args; } add_filter('gamipress_get_achievements_args', 'vikinger_optimized_gamipress_filter_achievements'); add_filter('gamipress_get_ranks_args', 'vikinger_optimized_gamipress_filter_achievements'); /** * Add pagination styles inline for critical CSS */ function vikinger_optimized_pagination_critical_css() { echo ''; } add_action('wp_head', 'vikinger_optimized_pagination_critical_css', 3); /** * Optimize GamiPress queries for better performance */ function vikinger_optimized_gamipress_query_optimization() { // Cache GamiPress queries for better performance add_filter('gamipress_get_achievements', function($achievements, $args) { $cache_key = 'gamipress_achievements_' . md5(serialize($args)); $cached = wp_cache_get($cache_key, 'gamipress'); if ($cached !== false) { return $cached; } wp_cache_set($cache_key, $achievements, 'gamipress', 300); // 5 minutes cache return $achievements; }, 10, 2); } add_action('init', 'vikinger_optimized_gamipress_query_optimization');
Intertuc
Cargando...