Version Description
| November 17th, 2021 = * Doc: Updated links to fancy new documentation hub: docs.ffw.press * Dev: Added $font_family to omgf_alternate_api_url filter. * Dev: Added filter to detect_registered_stylesheets(). * Fix: disable preload/unload when opposite checkbox is checked. * Fix: Updated RSS feed URL and properly encode retrieved XML to prevent parse error simplexml_load_string(). * Promo: Added force font-display promo material.
Download this release
Release Info
Developer | DaanvandenBergh |
Plugin | OMGF | GDPR/DSVGO Compliant, Faster Google Fonts. Easy. |
Version | 4.5.11 |
Comparing to | |
See all releases |
Code changes from version 4.5.10 to 4.5.11
- assets/js/omgf-admin.js +1 -1
- host-webfonts-local.php +2 -2
- includes/admin/class-settings.php +6 -2
- includes/admin/settings/class-help.php +5 -5
- includes/admin/settings/class-optimize.php +17 -2
- includes/api/class-download.php +2 -4
- includes/class-download.php +16 -0
- includes/frontend/class-functions.php +9 -1
- includes/optimization-mode/class-manual.php +1 -1
- readme.md +3 -1
- readme.txt +15 -5
assets/js/omgf-admin.js
CHANGED
@@ -227,7 +227,7 @@ jQuery(document).ready(function ($) {
|
|
227 |
*/
|
228 |
toggle: function (elem, option) {
|
229 |
var this_option = $(elem);
|
230 |
-
var other_option = $('.' + option + '-' + this_option.data('
|
231 |
|
232 |
if (elem.checked) {
|
233 |
other_option.attr('disabled', true);
|
227 |
*/
|
228 |
toggle: function (elem, option) {
|
229 |
var this_option = $(elem);
|
230 |
+
var other_option = $('.' + option + '-' + this_option.data('font-id') + '-' + this_option.val() + ' .' + option);
|
231 |
|
232 |
if (elem.checked) {
|
233 |
other_option.attr('disabled', true);
|
host-webfonts-local.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Plugin Name: OMGF
|
5 |
* Plugin URI: https://daan.dev/wordpress-plugins/host-google-fonts-locally
|
6 |
* Description: Minimize DNS requests, leverage browser cache and speed up WordPress by saving Google Fonts to your server and removing external Google Fonts requests.
|
7 |
-
* Version: 4.5.
|
8 |
* Author: Daan from FFW.Press
|
9 |
* Author URI: https://ffw.press
|
10 |
* License: GPL2v2 or later
|
@@ -19,7 +19,7 @@ defined('ABSPATH') || exit;
|
|
19 |
define('OMGF_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
20 |
define('OMGF_PLUGIN_FILE', __FILE__);
|
21 |
define('OMGF_PLUGIN_BASENAME', plugin_basename(OMGF_PLUGIN_FILE));
|
22 |
-
define('OMGF_STATIC_VERSION', '4.5.
|
23 |
define('OMGF_DB_VERSION', '4.5.1');
|
24 |
|
25 |
/**
|
4 |
* Plugin Name: OMGF
|
5 |
* Plugin URI: https://daan.dev/wordpress-plugins/host-google-fonts-locally
|
6 |
* Description: Minimize DNS requests, leverage browser cache and speed up WordPress by saving Google Fonts to your server and removing external Google Fonts requests.
|
7 |
+
* Version: 4.5.11
|
8 |
* Author: Daan from FFW.Press
|
9 |
* Author URI: https://ffw.press
|
10 |
* License: GPL2v2 or later
|
19 |
define('OMGF_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
20 |
define('OMGF_PLUGIN_FILE', __FILE__);
|
21 |
define('OMGF_PLUGIN_BASENAME', plugin_basename(OMGF_PLUGIN_FILE));
|
22 |
+
define('OMGF_STATIC_VERSION', '4.5.11');
|
23 |
define('OMGF_DB_VERSION', '4.5.1');
|
24 |
|
25 |
/**
|
includes/admin/class-settings.php
CHANGED
@@ -194,7 +194,7 @@ class OMGF_Admin_Settings extends OMGF_Admin
|
|
194 |
}
|
195 |
|
196 |
// Footer Text
|
197 |
-
add_filter('admin_footer_text', [$this, 'footer_text_left']);
|
198 |
add_filter('update_footer', [$this, 'footer_text_right'], 11);
|
199 |
|
200 |
// Tabs
|
@@ -479,7 +479,7 @@ class OMGF_Admin_Settings extends OMGF_Admin
|
|
479 |
$xml = get_transient(self::OMGF_NEWS_REEL);
|
480 |
|
481 |
if (!$xml) {
|
482 |
-
$response = wp_remote_get('https://
|
483 |
|
484 |
if (!is_wp_error($response)) {
|
485 |
$xml = wp_remote_retrieve_body($response);
|
@@ -493,6 +493,10 @@ class OMGF_Admin_Settings extends OMGF_Admin
|
|
493 |
return $text;
|
494 |
}
|
495 |
|
|
|
|
|
|
|
|
|
496 |
$xml = simplexml_load_string($xml);
|
497 |
|
498 |
if (!$xml) {
|
194 |
}
|
195 |
|
196 |
// Footer Text
|
197 |
+
add_filter('admin_footer_text', [$this, 'footer_text_left'], 99);
|
198 |
add_filter('update_footer', [$this, 'footer_text_right'], 11);
|
199 |
|
200 |
// Tabs
|
479 |
$xml = get_transient(self::OMGF_NEWS_REEL);
|
480 |
|
481 |
if (!$xml) {
|
482 |
+
$response = wp_remote_get('https://ffw.press/blog/tag/omgf/feed');
|
483 |
|
484 |
if (!is_wp_error($response)) {
|
485 |
$xml = wp_remote_retrieve_body($response);
|
493 |
return $text;
|
494 |
}
|
495 |
|
496 |
+
/**
|
497 |
+
* Make sure the XML is properly encoded.
|
498 |
+
*/
|
499 |
+
$xml = utf8_encode(html_entity_decode($xml));
|
500 |
$xml = simplexml_load_string($xml);
|
501 |
|
502 |
if (!$xml) {
|
includes/admin/settings/class-help.php
CHANGED
@@ -50,11 +50,11 @@ class OMGF_Admin_Settings_Help extends OMGF_Admin_Settings_Builder
|
|
50 |
<?php _e('Need Help?', $this->plugin_text_domain); ?>
|
51 |
</h3>
|
52 |
<ul>
|
53 |
-
<li><a class="welcome-icon dashicons-controls-forward" target="_blank" href="<?= apply_filters('
|
54 |
-
<li><a class="welcome-icon dashicons-text-page" target="_blank" href="<?= apply_filters('
|
55 |
-
<li><a class="welcome-icon dashicons-editor-help" target="_blank" href="<?= apply_filters('
|
56 |
-
<li><a class="welcome-icon dashicons-sos" target="_blank" href="<?= apply_filters('
|
57 |
-
<li><a class="welcome-icon dashicons-email" target="_blank" href="<?= apply_filters('
|
58 |
</ul>
|
59 |
</div>
|
60 |
<div class="welcome-panel-column">
|
50 |
<?php _e('Need Help?', $this->plugin_text_domain); ?>
|
51 |
</h3>
|
52 |
<ul>
|
53 |
+
<li><a class="welcome-icon dashicons-controls-forward" target="_blank" href="<?= apply_filters('omgf_settings_help_quick_start', 'https://docs.ffw.press/article/7-quick-start'); ?>"><?= __('Quick Start Guide', $this->plugin_text_domain); ?></a></li>
|
54 |
+
<li><a class="welcome-icon dashicons-text-page" target="_blank" href="<?= apply_filters('omgf_settings_help_user_manual', 'https://docs.ffw.press/category/4-omgf-pro'); ?>"><?= __('User Manual', $this->plugin_text_domain); ?></a></li>
|
55 |
+
<li><a class="welcome-icon dashicons-editor-help" target="_blank" href="<?= apply_filters('omgf_settings_help_faq_link', 'https://docs.ffw.press/article/9-frequently-asked-question-faq'); ?>"><?= __('FAQ', $this->plugin_text_domain); ?></a></li>
|
56 |
+
<li><a class="welcome-icon dashicons-sos" target="_blank" href="<?= apply_filters('omgf_settings_help_troubleshooting_link', 'https://docs.ffw.press/category/37-omgf-pro---troubleshooting'); ?>"><?= __('Troubleshooting Guide', $this->plugin_text_domain); ?></a></li>
|
57 |
+
<li><a class="welcome-icon dashicons-email" target="_blank" href="<?= apply_filters('omgf_settings_help_support_link', 'https://docs.ffw.press/contact'); ?>"><?= __('Get Support', $this->plugin_text_domain); ?></a></li>
|
58 |
</ul>
|
59 |
</div>
|
60 |
<div class="welcome-panel-column">
|
includes/admin/settings/class-optimize.php
CHANGED
@@ -39,8 +39,9 @@ class OMGF_Admin_Settings_Optimize extends OMGF_Admin_Settings_Builder
|
|
39 |
add_filter('omgf_optimize_settings_content', [$this, 'do_optimization_mode'], 30);
|
40 |
add_filter('omgf_optimize_settings_content', [$this, 'do_promo_combine_requests'], 40);
|
41 |
add_filter('omgf_optimize_settings_content', [$this, 'do_display_option'], 50);
|
42 |
-
add_filter('omgf_optimize_settings_content', [$this, '
|
43 |
-
add_filter('omgf_optimize_settings_content', [$this, '
|
|
|
44 |
add_filter('omgf_optimize_settings_content', [$this, 'do_after'], 100);
|
45 |
|
46 |
add_filter('omgf_optimize_settings_content', [$this, 'do_optimize_fonts_container'], 200);
|
@@ -110,6 +111,20 @@ class OMGF_Admin_Settings_Optimize extends OMGF_Admin_Settings_Builder
|
|
110 |
);
|
111 |
}
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
/**
|
114 |
* Display WOFF2 Only
|
115 |
*
|
39 |
add_filter('omgf_optimize_settings_content', [$this, 'do_optimization_mode'], 30);
|
40 |
add_filter('omgf_optimize_settings_content', [$this, 'do_promo_combine_requests'], 40);
|
41 |
add_filter('omgf_optimize_settings_content', [$this, 'do_display_option'], 50);
|
42 |
+
add_filter('omgf_optimize_settings_content', [$this, 'do_promo_force_font_display'], 60);
|
43 |
+
add_filter('omgf_optimize_settings_content', [$this, 'do_promo_include_file_types'], 70);
|
44 |
+
add_filter('omgf_optimize_settings_content', [$this, 'do_promo_force_subsets'], 80);
|
45 |
add_filter('omgf_optimize_settings_content', [$this, 'do_after'], 100);
|
46 |
|
47 |
add_filter('omgf_optimize_settings_content', [$this, 'do_optimize_fonts_container'], 200);
|
111 |
);
|
112 |
}
|
113 |
|
114 |
+
/**
|
115 |
+
* Force Font-Display Option Site Wide
|
116 |
+
*/
|
117 |
+
public function do_promo_force_font_display()
|
118 |
+
{
|
119 |
+
$this->do_checkbox(
|
120 |
+
__('Force Font-Display Option Site Wide (Pro)', $this->plugin_text_domain),
|
121 |
+
'omgf_pro_force_font_display',
|
122 |
+
defined('OMGF_PRO_FORCE_FONT_DISPLAY') ? OMGF_PRO_FORCE_FONT_DISPLAY : false,
|
123 |
+
__('Force the above <code>font-display</code> attribute on all <code>@font-face</code> statements to ensure all text is user-visible while webfonts and icon sets are loading.', $this->plugin_text_domain),
|
124 |
+
true
|
125 |
+
);
|
126 |
+
}
|
127 |
+
|
128 |
/**
|
129 |
* Display WOFF2 Only
|
130 |
*
|
includes/api/class-download.php
CHANGED
@@ -269,13 +269,13 @@ class OMGF_API_Download extends WP_REST_Controller
|
|
269 |
$alternate_fonts = apply_filters('omgf_alternate_fonts', []);
|
270 |
|
271 |
if (in_array($family, array_keys($alternate_fonts))) {
|
272 |
-
$url = apply_filters('omgf_alternate_api_url', $url);
|
273 |
unset($query);
|
274 |
}
|
275 |
|
276 |
$query_string = '';
|
277 |
|
278 |
-
if ($query) {
|
279 |
$query_string = '?' . http_build_query($query);
|
280 |
}
|
281 |
|
@@ -332,8 +332,6 @@ class OMGF_API_Download extends WP_REST_Controller
|
|
332 |
* Because the regular Google Webfonts Helper API tends to go offline sometimes, this function allows us
|
333 |
* to use fallback services.
|
334 |
*
|
335 |
-
* TODO: Setup own mirror.
|
336 |
-
*
|
337 |
* @return string Will return regular API url if fallback API url fails, too. Error handling later on will display a
|
338 |
* proper message to the user.
|
339 |
*/
|
269 |
$alternate_fonts = apply_filters('omgf_alternate_fonts', []);
|
270 |
|
271 |
if (in_array($family, array_keys($alternate_fonts))) {
|
272 |
+
$url = apply_filters('omgf_alternate_api_url', $url, $family);
|
273 |
unset($query);
|
274 |
}
|
275 |
|
276 |
$query_string = '';
|
277 |
|
278 |
+
if (isset($query)) {
|
279 |
$query_string = '?' . http_build_query($query);
|
280 |
}
|
281 |
|
332 |
* Because the regular Google Webfonts Helper API tends to go offline sometimes, this function allows us
|
333 |
* to use fallback services.
|
334 |
*
|
|
|
|
|
335 |
* @return string Will return regular API url if fallback API url fails, too. Error handling later on will display a
|
336 |
* proper message to the user.
|
337 |
*/
|
includes/class-download.php
CHANGED
@@ -18,14 +18,21 @@ defined('ABSPATH') || exit;
|
|
18 |
|
19 |
class OMGF_Download
|
20 |
{
|
|
|
21 |
private $url;
|
22 |
|
|
|
23 |
private $filename;
|
24 |
|
|
|
25 |
private $extension;
|
26 |
|
|
|
27 |
private $path;
|
28 |
|
|
|
|
|
|
|
29 |
/**
|
30 |
* OMGF_Download constructor.
|
31 |
*/
|
@@ -65,6 +72,15 @@ class OMGF_Download
|
|
65 |
}
|
66 |
|
67 |
$tmp = download_url($this->url);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
copy($tmp, $file);
|
69 |
@unlink($tmp);
|
70 |
|
18 |
|
19 |
class OMGF_Download
|
20 |
{
|
21 |
+
/** @var string $url */
|
22 |
private $url;
|
23 |
|
24 |
+
/** @var string $filename */
|
25 |
private $filename;
|
26 |
|
27 |
+
/** @var string $extension */
|
28 |
private $extension;
|
29 |
|
30 |
+
/** @var string $path */
|
31 |
private $path;
|
32 |
|
33 |
+
/** @var string $plugin_text_domain */
|
34 |
+
private $plugin_text_domain = 'host-webfonts-local';
|
35 |
+
|
36 |
/**
|
37 |
* OMGF_Download constructor.
|
38 |
*/
|
72 |
}
|
73 |
|
74 |
$tmp = download_url($this->url);
|
75 |
+
|
76 |
+
if (is_wp_error($tmp)) {
|
77 |
+
/** @var WP_Error $tmp */
|
78 |
+
OMGF_Admin_Notice::set_notice(__('OMGF encountered an error while downloading fonts', $this->plugin_text_domain) . ': ' . $tmp->get_error_message(), 'omgf-download-failed', false, 'error', $tmp->get_error_code());
|
79 |
+
|
80 |
+
return '';
|
81 |
+
}
|
82 |
+
|
83 |
+
/** @var string $tmp */
|
84 |
copy($tmp, $file);
|
85 |
@unlink($tmp);
|
86 |
|
includes/frontend/class-functions.php
CHANGED
@@ -176,6 +176,9 @@ class OMGF_Frontend_Functions
|
|
176 |
|
177 |
$cached_file = OMGF_CACHE_PATH . '/' . $updated_handle . "/$updated_handle.css";
|
178 |
|
|
|
|
|
|
|
179 |
if (file_exists(WP_CONTENT_DIR . $cached_file)) {
|
180 |
$wp_styles->registered[$handle]->src = content_url($cached_file);
|
181 |
|
@@ -225,11 +228,16 @@ class OMGF_Frontend_Functions
|
|
225 |
*/
|
226 |
private function detect_registered_stylesheets($registered_styles)
|
227 |
{
|
228 |
-
|
229 |
$registered_styles,
|
230 |
function ($contents) {
|
231 |
return strpos($contents->src, 'fonts.googleapis.com/css') !== false;
|
232 |
}
|
233 |
);
|
|
|
|
|
|
|
|
|
|
|
234 |
}
|
235 |
}
|
176 |
|
177 |
$cached_file = OMGF_CACHE_PATH . '/' . $updated_handle . "/$updated_handle.css";
|
178 |
|
179 |
+
/**
|
180 |
+
* Bail early if stylesheet already exists.
|
181 |
+
*/
|
182 |
if (file_exists(WP_CONTENT_DIR . $cached_file)) {
|
183 |
$wp_styles->registered[$handle]->src = content_url($cached_file);
|
184 |
|
228 |
*/
|
229 |
private function detect_registered_stylesheets($registered_styles)
|
230 |
{
|
231 |
+
$detected_stylesheets = array_filter(
|
232 |
$registered_styles,
|
233 |
function ($contents) {
|
234 |
return strpos($contents->src, 'fonts.googleapis.com/css') !== false;
|
235 |
}
|
236 |
);
|
237 |
+
|
238 |
+
/**
|
239 |
+
* @since v4.5.11 Added filter to allow adding additional stylesheets.
|
240 |
+
*/
|
241 |
+
return apply_filters('omgf_detected_registered_stylesheets', $detected_stylesheets, $registered_styles);
|
242 |
}
|
243 |
}
|
includes/optimization-mode/class-manual.php
CHANGED
@@ -202,7 +202,7 @@ class OMGF_OptimizationMode_Manual
|
|
202 |
*/
|
203 |
private function no_urls_found()
|
204 |
{
|
205 |
-
add_settings_error('general', 'omgf_no_urls_found', sprintf(__('No (additional) Google Fonts found to optimize. If you believe this is an error, please refer to the %stroubleshooting%s section of the documentation for possible solutions.', $this->plugin_text_domain), '<a href="https://ffw.press/
|
206 |
}
|
207 |
|
208 |
/**
|
202 |
*/
|
203 |
private function no_urls_found()
|
204 |
{
|
205 |
+
add_settings_error('general', 'omgf_no_urls_found', sprintf(__('No (additional) Google Fonts found to optimize. If you believe this is an error, please refer to the %stroubleshooting%s section of the documentation for possible solutions.', $this->plugin_text_domain), '<a href="https://docs.ffw.press/category/37-omgf-pro---troubleshooting">', '</a>'), 'info');
|
206 |
}
|
207 |
|
208 |
/**
|
readme.md
CHANGED
@@ -33,8 +33,10 @@ Everything in the free version, plus:
|
|
33 |
- Automatically remove/replace all Google Fonts throughout the entire document/page,
|
34 |
- Also supports WebFont Loader (webfont.js), Early Access Google Fonts and requests in stylesheets using @import and @font-face statements.
|
35 |
- Automatically generate different stylesheets for pages with different Google Fonts configurations.
|
|
|
36 |
- Combine all Google Fonts stylesheets (requested by your theme and/or plugins) into one file,
|
37 |
- Deduplicate Google Fonts stylesheets,
|
|
|
38 |
- Define file types to include in stylesheet (WOFF, WOFF2, EOT, TTF, SVG),
|
39 |
- Reduce loading time and page size, by forcing the used subset(s) for all Google Fonts requests,
|
40 |
- Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to fonts.googleapis.com or fonts.gstatic.com,
|
@@ -44,7 +46,7 @@ Everything in the free version, plus:
|
|
44 |
- Anything you like!
|
45 |
- Proper handling for AMP pages (Fallback to or remove Google Fonts).
|
46 |
|
47 |
-
**[Documentation](https://ffw.press/
|
48 |
|
49 |
|
50 |
## Installation
|
33 |
- Automatically remove/replace all Google Fonts throughout the entire document/page,
|
34 |
- Also supports WebFont Loader (webfont.js), Early Access Google Fonts and requests in stylesheets using @import and @font-face statements.
|
35 |
- Automatically generate different stylesheets for pages with different Google Fonts configurations.
|
36 |
+
- Material Icons support.
|
37 |
- Combine all Google Fonts stylesheets (requested by your theme and/or plugins) into one file,
|
38 |
- Deduplicate Google Fonts stylesheets,
|
39 |
+
- Rewrite stylesheets added by other plugins and/or themes to include the configured font-display (e.g. swap) option, this will remove *the ensure text remains visible during webfont load* optimization suggestion from Google PageSpeed Insights,
|
40 |
- Define file types to include in stylesheet (WOFF, WOFF2, EOT, TTF, SVG),
|
41 |
- Reduce loading time and page size, by forcing the used subset(s) for all Google Fonts requests,
|
42 |
- Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to fonts.googleapis.com or fonts.gstatic.com,
|
46 |
- Anything you like!
|
47 |
- Proper handling for AMP pages (Fallback to or remove Google Fonts).
|
48 |
|
49 |
+
**[Documentation](https://docs.ffw.press/category/4-omgf-pro/) | [Purchase OMGF Pro](https://ffw.press/wordpress/omgf-pro/)**
|
50 |
|
51 |
|
52 |
## Installation
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: DaanvandenBergh
|
|
3 |
Tags: google, fonts, gdpr, cache, speed, preload, font-display, webfonts, subsets, remove, minimize, external, requests
|
4 |
Requires at least: 4.6
|
5 |
Tested up to: 5.8
|
6 |
-
Stable tag: 4.5.
|
7 |
Requires PHP: 7.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -47,10 +47,12 @@ Everything in the free version, plus:
|
|
47 |
- Automatically remove/replace all Google Fonts throughout the entire document/page,
|
48 |
- Also supports WebFont Loader (webfont.js), Early Access Google Fonts and requests in stylesheets using @import and @font-face statements.
|
49 |
- Automatically generate different stylesheets for pages with different Google Fonts configurations.
|
|
|
50 |
- Combine all Google Fonts stylesheets (requested by your theme and/or plugins) into one file,
|
51 |
- Deduplicate Google Fonts stylesheets,
|
|
|
52 |
- Define file types to include in stylesheet (WOFF, WOFF2, EOT, TTF, SVG),
|
53 |
-
- Reduce loading time and page size, by forcing
|
54 |
- Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to fonts.googleapis.com or fonts.gstatic.com,
|
55 |
- Modify `src` attribute for fonts in stylesheet using the Fonts Source URL option to fully integrate with your configuration,
|
56 |
- Use this to serve fonts and the stylesheets from your CDN, or
|
@@ -58,7 +60,7 @@ Everything in the free version, plus:
|
|
58 |
- Anything you like!
|
59 |
- Proper handling for AMP pages (Fallback to or remove Google Fonts).
|
60 |
|
61 |
-
*[Purchase OMGF Pro](https://ffw.press/wordpress/omgf-pro/) | [Documentation](https://ffw.press/
|
62 |
|
63 |
== Installation ==
|
64 |
|
@@ -66,11 +68,11 @@ Everything in the free version, plus:
|
|
66 |
2. Activate the plugin through the 'Plugins' screen in WordPress
|
67 |
3. Use the Settings -> Optimize Google Fonts screen to configure the plugin
|
68 |
|
69 |
-
For a more comprehensive guide on configuring OMGF, check out the [user manual](https://ffw.press/
|
70 |
|
71 |
== Frequently Asked Questions ==
|
72 |
|
73 |
-
For the FAQ, [click here](https://ffw.press/
|
74 |
|
75 |
== Screenshots ==
|
76 |
|
@@ -81,6 +83,14 @@ For the FAQ, [click here](https://ffw.press/docs/omgf-pro/faq/).
|
|
81 |
|
82 |
== Changelog ==
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
= 4.5.10 | October 18th, 2021 =
|
85 |
* Enhancement: API now cleans up excessive spacing and + symbols in requests before fetching fonts. This comes in handy when e.g. @import statements in CSS stylesheets are auto-formatted by IDEs.
|
86 |
* Fix: API would crash when Google Fonts request turned up empty.
|
3 |
Tags: google, fonts, gdpr, cache, speed, preload, font-display, webfonts, subsets, remove, minimize, external, requests
|
4 |
Requires at least: 4.6
|
5 |
Tested up to: 5.8
|
6 |
+
Stable tag: 4.5.11
|
7 |
Requires PHP: 7.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
47 |
- Automatically remove/replace all Google Fonts throughout the entire document/page,
|
48 |
- Also supports WebFont Loader (webfont.js), Early Access Google Fonts and requests in stylesheets using @import and @font-face statements.
|
49 |
- Automatically generate different stylesheets for pages with different Google Fonts configurations.
|
50 |
+
- Material Icons support.
|
51 |
- Combine all Google Fonts stylesheets (requested by your theme and/or plugins) into one file,
|
52 |
- Deduplicate Google Fonts stylesheets,
|
53 |
+
- Rewrite stylesheets added by other plugins and/or themes to include the configured font-display (e.g. swap) option, this will remove *the ensure text remains visible during webfont load* optimization suggestion from Google PageSpeed Insights.
|
54 |
- Define file types to include in stylesheet (WOFF, WOFF2, EOT, TTF, SVG),
|
55 |
+
- Reduce loading time and page size, by forcing a certain subset(s) to be used for all Google Fonts requests,
|
56 |
- Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to fonts.googleapis.com or fonts.gstatic.com,
|
57 |
- Modify `src` attribute for fonts in stylesheet using the Fonts Source URL option to fully integrate with your configuration,
|
58 |
- Use this to serve fonts and the stylesheets from your CDN, or
|
60 |
- Anything you like!
|
61 |
- Proper handling for AMP pages (Fallback to or remove Google Fonts).
|
62 |
|
63 |
+
*[Purchase OMGF Pro](https://ffw.press/wordpress/omgf-pro/) | [Documentation](https://docs.ffw.press/category/4-omgf-pro/) | [Tested Plugins & Themes](https://docs.ffw.press/article/40-list-of-compatible-themes-and-plugins-omgf-pro)*
|
64 |
|
65 |
== Installation ==
|
66 |
|
68 |
2. Activate the plugin through the 'Plugins' screen in WordPress
|
69 |
3. Use the Settings -> Optimize Google Fonts screen to configure the plugin
|
70 |
|
71 |
+
For a more comprehensive guide on configuring OMGF, check out the [user manual](https://docs.ffw.press/category/4-omgf-pro/)
|
72 |
|
73 |
== Frequently Asked Questions ==
|
74 |
|
75 |
+
For the FAQ, [click here](https://docs.ffw.press/category/76-omgf-pro---faq).
|
76 |
|
77 |
== Screenshots ==
|
78 |
|
83 |
|
84 |
== Changelog ==
|
85 |
|
86 |
+
= 4.5.11 | November 17th, 2021 =
|
87 |
+
* Doc: Updated links to fancy new documentation hub: docs.ffw.press
|
88 |
+
* Dev: Added $font_family to omgf_alternate_api_url filter.
|
89 |
+
* Dev: Added filter to detect_registered_stylesheets().
|
90 |
+
* Fix: disable preload/unload when opposite checkbox is checked.
|
91 |
+
* Fix: Updated RSS feed URL and properly encode retrieved XML to prevent parse error simplexml_load_string().
|
92 |
+
* Promo: Added force font-display promo material.
|
93 |
+
|
94 |
= 4.5.10 | October 18th, 2021 =
|
95 |
* Enhancement: API now cleans up excessive spacing and + symbols in requests before fetching fonts. This comes in handy when e.g. @import statements in CSS stylesheets are auto-formatted by IDEs.
|
96 |
* Fix: API would crash when Google Fonts request turned up empty.
|