Jak bumerang wraca temat polskich znaków w Google Fonts i tego że ich nie widać.
Gwiazdka w tytule oznacza pewne założenie. Otóż tym założeniem jest to, że dany krój pisma posiada polskie znaki diakrytyczne.
Jak dany krój nie posiada, to i tak nic nie pomoże.
Aby czcionka mogła wyświetlać musi być załadowany odpowiedni zestaw znaków, ten zestaw dla Polski nazywa się latin-ext.
Poniższy kod wykorzystuje filtr style_loader_src i dodaje odpowiednią definicję do każdej dodanej przez motyw czy wtyczkę czcionki google o ile ten krój został dodany za pomocą funkcji wp_enqueue_style. Jak kod dodany jest ręcznie … to nie pomoże. Wtedy trzeba się w kod pofatygować osobiście i dodać „&subset=latin,latin-ext”.
class iworks_subset_latin_extended
{
public function __construct()
{
add_filter('style_loader_src', array($this,'style_loader_src'), 10, 2);
}
public function style_loader_src($src, $handle)
{
/**
* check is google fonts url?
*/
if ( !preg_match( '@fonts.googleapis.com/css@', $src ) ) {
return $src;
}
$url = explode('?', $src);
if ( sizeof($url) < 2 ) {
return $src;
}
/**
* parse arguments
*/
$args = wp_parse_args($url[1]);
/**
* build subset array
*/
$subset = array();
if ( array_key_exists('subset', $args ) ) {
$subset = explode(',', $args['subset']);
}
/**
* add latin and latin-ext to subset
*/
$subset[] = 'latin';
$subset[] = 'latin-ext';
/**
* avoid duplicates
*/
$args['subset'] = implode(',',array_unique($subset));
/**
* replace space to fiz add_query_arg
*/
$args['family'] = preg_replace('/ +/', '+', $args['family']);
return add_query_arg($args, $url[0]);
}
}
new iworks_subset_latin_extended();
pobierz plik: iworks_subset_latin_extended.php.zip
Jak użyć podany kod?
Masz 3 rozwiązania:
wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
wrzuć załączony plik do folderu wp-content/mu-plugins
dołącz kod do pliku functions.php aktualnie używanego motywu
Uwaga!
Podana metoda działa TYLKO na czcionki osadzane z serwisu fonts.googleapis.com. Nie działa na inne, nie działa na takie z własnego serwera.
Comments