Elementor Pro 2.7 will add support for the font-display
property which defines how font files are loaded and displayed by the browser.
This feature was widely requested ( #5993 ) so it is implemented with a default value of auto
which is the equivalent to not having it at all.
You can now modify the value to block,swap,fallback,optional
via a filter we added, ex:
add_filter( 'elementor_pro/custom_fonts/font_display', function( $current_value, $font_family, $data ) {
return 'swap';
}, 10, 3 );
After adding the code above, you will need to regenerate the CSS via Elementor > Tools > Regenerate CSS on your WordPress Dashboard.
This will set all Elementor Pro Custom Fonts font-display
to swap
.
As can be seen, the filters’ callback accepts 3 arguments:
$current_value
– (string) defaults ‘auto
‘ the value filtered.$font_family
– (string) the current font family.$data
– (array) the current font data config.
You can use that to set different values based on your needs, ex, change only font family named ‘Lobster’ font-display
to block
:
add_filter( 'elementor_pro/custom_fonts/font_display', function( $current_value, $font_family, $data ) {
if ( 'Lobster' === $font_family ) {
$current_value = 'block';
}
return $current_value;
}, 10, 3 );
Trouble shooting:
If you add your custom filter to alter the font-display
property after you have uploaded you custom fonts, you need to regenerate the font-face
CSS, which can be easily done by:
- Head over to the Custom fonts screen at Elementor > Custom Fonts.
- Edit the custom font you want to regenerate (simple edit and update, no changes are needed).
- Repeat step 2 for each font you want to regenerate.
- Head over to Elementor > Tools > click on the Regenerate Files.
This needs to be done every time you change the value of font-display
via this hook.