settings = SettingsManager::get_instance(); $this->init_hooks(); } private function get_setting($key, $default = '') { return $this->settings->get('speed_boost', $key, $default); } private function init_hooks() { if ($this->get_setting('disable_emojis')) { add_action('init', [$this, 'disable_emojis']); } if ($this->get_setting('disable_embeds')) { add_action('init', [$this, 'disable_embeds']); } if ($this->get_setting('limit_revisions')) { add_filter('wp_revisions_to_keep', [$this, 'limit_revisions'], 10, 2); } if ($this->get_setting('heartbeat_control')) { add_action('init', [$this, 'control_heartbeat'], 1); } if ($this->get_setting('remove_query_strings')) { add_filter('style_loader_src', [$this, 'remove_query_strings'], 10, 2); add_filter('script_loader_src', [$this, 'remove_query_strings'], 10, 2); } } public function disable_emojis() { remove_action('wp_head', 'print_emoji_detection_script', 7); remove_action('admin_print_scripts', 'print_emoji_detection_script'); remove_action('wp_print_styles', 'print_emoji_styles'); remove_action('admin_print_styles', 'print_emoji_styles'); remove_filter('the_content_feed', 'wp_staticize_emoji'); remove_filter('comment_text_rss', 'wp_staticize_emoji'); remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); } public function disable_embeds() { global $wp; $wp->public_query_vars = array_diff($wp->public_query_vars, ['embed']); remove_action('rest_api_init', 'wp_oembed_register_route'); add_filter('embed_oembed_discover', '__return_false'); remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10); remove_action('wp_head', 'wp_oembed_add_discovery_links'); remove_action('wp_head', 'wp_oembed_add_host_js'); } public function limit_revisions($num, $post) { $limit = (int) $this->get_setting('revision_limit', 5); return $limit; } public function control_heartbeat() { $freq = $this->get_setting('heartbeat_frequency', 60); if ($freq == 0) { wp_deregister_script('heartbeat'); return; } add_filter('heartbeat_settings', function($settings) use ($freq) { $settings['interval'] = $freq; return $settings; }); } public function remove_query_strings($src) { if (strpos($src, '?ver=')) { $src = remove_query_arg('ver', $src); } return $src; } public function render_settings() { $settings = [ 'disable_emojis' => ['type' => 'checkbox', 'label' => __('Disable Emojis', 'admin-menu-optimizer')], 'disable_embeds' => ['type' => 'checkbox', 'label' => __('Disable Embeds', 'admin-menu-optimizer')], 'remove_query_strings' => ['type' => 'checkbox', 'label' => __('Remove Query Strings from Static Resources', 'admin-menu-optimizer')], 'limit_revisions' => ['type' => 'checkbox', 'label' => __('Limit Post Revisions', 'admin-menu-optimizer')], 'revision_limit' => ['type' => 'number', 'label' => __('Number of Revisions to Keep', 'admin-menu-optimizer')], 'heartbeat_control' => ['type' => 'checkbox', 'label' => __('Control Heartbeat API', 'admin-menu-optimizer')], 'heartbeat_frequency' => ['type' => 'select', 'label' => __('Heartbeat Frequency', 'admin-menu-optimizer'), 'options' => [ '15' => '15 Seconds', '30' => '30 Seconds', '60' => '60 Seconds', '0' => 'Disable Heartbeat' ]], ]; echo '
| ' . esc_html($field['label']) . ' | '; echo ''; if ($field['type'] === 'checkbox') { echo ''; } elseif ($field['type'] === 'number') { echo ''; } elseif ($field['type'] === 'select') { echo ''; } echo ' | '; echo '
|---|