Twenty TwelveテーマからOpen Sansを削除する


16

Twenty Twelve v1.0の子テーマを作成していますが、Open Sansフォントを削除したいです。

Open SansはTwenty Twelve´s functions.phpに追加されます。

wp_enqueue_style( 'twentytwelve-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null );

childthemeのfunctions.php(下記の例を参照)でスタイルシートを登録解除/デキューしようとしましたが、効果はありませんでした。

function example_scripts_styles() {     
    wp_deregister_style( 'twentytwelve-fonts' );    
    wp_dequeue_style( 'twentytwelve-fonts' );
}
add_action( 'wp_enqueue_scripts', 'example_scripts_styles' );

このファイルを削除する方法はありますか?ありがとう!

回答:


12

ここで答えを見つけました:

スクリプトのデキュー呼び出しをwp_print_scriptsアクションフック(..)に追加する必要があります。これは、通常、スクリプトがwp_enqueue_scriptフックでキューに登録されるためです。これはwp_headプロセスの初期に発生します。wp_print_scriptsフックは、スクリプトが印刷される直前に発生するため、プロセスの最新のものです。(オットー)

wp_print_stylesOpen Sansフォントを削除するために使用できる同じロジックに従います。

function remove_open_sans() {
   wp_dequeue_style( 'twentytwelve-fonts' );
}
add_action('wp_print_styles','remove_open_sans');

これでうまくいきました。


6

WP 3.8+では、thetricksterの要点を使用して、フロントエンドスタイルから「Open Sans」を正常に削除しました

<?php
// Remove Open Sans that WP adds from frontend
if (!function_exists('remove_wp_open_sans')) :
    function remove_wp_open_sans() {
        wp_deregister_style( 'open-sans' );
        wp_register_style( 'open-sans', false );
    }
    add_action('wp_enqueue_scripts', 'remove_wp_open_sans');

    // Uncomment below to remove from admin
    // add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
endif;
?>

「Open Sans」はプラグインに依存する場合があります。


これは、別のテーマでも機能しました。私の子供のテーマ機能にそれを落としました.....私はこれについてとても、とても幸せです。私は中国にいるので、不必要なグーグルコールは小さな最適化ではありません。グーグルへのコールが死ぬまで数分間私のページがハングアップします。これは私にとっては巨大です:-D
マイクM

ああ、はい、プラグインでそれを識別しました(一度に1つずつ非アクティブ化することで調査します)== Jetpack .....修正することはもちろん、巨大な何かを見つけるのは非常に困難です。ありがとう、WP
マイクM

4

Twenty Twelve v1.1のfunctions.phpで、wp_enqueue_scriptsフックからスタイルシートを削除する方法を説明するコメントがあります。

function mytheme_dequeue_fonts() {
         wp_dequeue_style( 'twentytwelve-fonts' );
      }

add_action( 'wp_enqueue_scripts', 'mytheme_dequeue_fonts', 11 );

うまくいかなかったあなたの試みは、の優先度パラメータが欠落していましたadd_action()。親テーマはデフォルトの優先度10でスタイルをキューに入れるため、子テーマは優先度11でスタイルをデキューする必要があります。


3

WordPress自体もOpen Sans(少なくともバージョン3.8)を読み込むことがわかります。実際、Open Sansを3回ロードしていました。1つはWP管理者用、もう1つはTinyMCEエディター用、もう1つはページ用です。

Open Sansを完全に削除することが目標の場合、WordPress自体をハッキングする(または古いバージョンのままにする)必要があります。

Open Sansを削除するための独自のコード(少なくともユーザーがログインしていない場合、ほとんどの場合)は私のテーマfunctions.phpです:

add_action( 'wp_enqueue_scripts'、 'ays_setup'、9);

関数ays_setup(){

    / * TinyMCEにはOpen Sansフォントはありません* /
    remove_filter( 'mce_css'、 'twentytwelve_mce_css');

    / *ページのOpen Sansフォントはありません* /
    remove_action( 'wp_enqueue_scripts'、 'twentytwelve_scripts_styles');
    add_action( 'wp_enqueue_scripts'、 'ays_scripts_styles');
}

関数ays_scripts_styles(){
    グローバル$ wp_styles;

    / *
     *サポートするコメントフォームを含むページにJavaScriptを追加します
     *スレッド化されたコメントのあるサイト(使用中)。
     * /
    if(is_singular()&& comments_open()&& get_option( 'thread_comments')))
        wp_enqueue_script( 'comment-reply');

    //ナビゲーションメニューの非表示/表示動作を処理するJavaScriptを追加します。
    wp_enqueue_script( 'twentytwelve-navigation'、get_template_directory_uri()。 '/js/navigation.js'、array()、 '1.0'、true);

    //メインスタイルシートをロードします。
    wp_enqueue_style( 'twentytwelve-style'、get_stylesheet_uri());

    // Internet Explorer固有のスタイルシートをロードします。
    wp_enqueue_style( 'twentytwelve-ie'、get_template_directory_uri()。 '/css/ie.css'、array( 'twentytwelve-style')、 '20121010');
    $ wp_styles-> add_data( 'twentytwelve-ie'、 'conditional'、 'lt IE 9');
}

twentytwelve_scripts_stylestwentytwelve_scripts_stylesOpen Sansをロードするビットを除くすべてが含まれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.