web-dev-qa-db-ja.com

DiviテーマがGoogleフォントを読み込まないようにする方法

ページの読み込み時間を短縮するために、Googleフォントをローカルでホストする必要があります。

これを行うには、 google-webfonts-helper を使用します。

私たちのテーマであるDiviがオリジナルのGoogleフォントを読み込まないようにする必要があります。

現在、当サイトの頭の中には以下のものがあります。

<link data-asynced='1' as='style' onload='this.rel="stylesheet"'  rel='preload' id='divi-fonts-css'  href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&#038;subset=latin,latin-ext' type='text/css' media='all' />

/Divi/core/functions.phpには、次のものがあります。

if ( ! function_exists( 'et_core_get_main_fonts' ) ) :
function et_core_get_main_fonts() {
    global $wp_version;

    if ( version_compare( $wp_version, '4.6', '<' ) ) {
        return '';
    }

    $fonts_url = '';

    /* Translators: If there are characters in your language that are not
     * supported by Open Sans, translate this to 'off'. Do not translate
     * into your own language.
     */
    $open_sans = _x( 'on', 'Open Sans font: on or off', 'Divi' );

    if ( 'off' !== $open_sans ) {
        $font_families = array();

        if ( 'off' !== $open_sans )
            $font_families[] = 'Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800';

        $protocol = is_ssl() ? 'https' : 'http';
        $query_args = array(
            'family' => implode( '%7C', $font_families ),
            'subset' => 'latin,latin-ext',
        );
        $fonts_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );
    }

    return $fonts_url;
}
endif;

if ( ! function_exists( 'et_core_load_main_fonts' ) ) :
function et_core_load_main_fonts() {
    $fonts_url = et_core_get_main_fonts();
    if ( empty( $fonts_url ) ) {
        return;
    }

    wp_enqueue_style( 'et-core-main-fonts', esc_url_raw( $fonts_url ), array(), null );
}
endif;

DiviテーマがGoogleフォントを読み込まないようにするにはどうすればよいですか。

関数et_core_load_main_fontsを無効にする必要がありますか?

感謝して助けてください。

1
Steve

誰かが私がする必要があることをすでにやったように見えます。

この記事から 、私は私の子供のテーマのfunctions.phpに以下のコードを追加することができます:

// REMOVE OPEN SANS GOOGLE FONT FROM DIVI
function disable_open_sans_divi() {
wp_dequeue_style( 'divi-fonts' );
}
add_action( 'wp_enqueue_scripts', 'disable_open_sans_divi', 20 );
1
Steve

wp_dequeue_style() が助けになるはずです。スタイルをデキューしてフォントをエンキューする必要があります。

wp_dequeue_style('et-core-main-fonts');
wp_enqueue_style('your_fonts_handle', 'path_to_your_fonts');

またはあなたのフォントで関数を再宣言してください。

et_core_load_main_fonts() {
    $fonts_url = et_core_get_main_fonts();
    if ( empty( $fonts_url ) ) {
        return;
    }

    wp_enqueue_style( 'et-core-main-fonts', esc_url_raw( 'path_to_your_style' ), array(), null );
}
2
Maxim Sarandi