Hapus Open Sans dari tema Twenty Twelve

16

Saya membuat tema anak untuk Twenty Twelve v1.0 dan saya ingin menghapus font Open Sans.

Open Sans ditambahkan di Twenty Twelve's functions.php:

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

Saya sudah mencoba untuk membatalkan pendaftaran / dequeue stylesheet di functions.php childtheme's saya (lihat contoh di bawah) tetapi tidak berpengaruh:

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

Ada ide bagaimana saya bisa menghapus file ini? Terima kasih!

Mattvic
sumber

Jawaban:

12

Temukan jawabannya di sini :

Panggilan skrip dequeuing harus ditambahkan ke kait tindakan wp_print_scripts (..). Ini karena skrip pada umumnya enqueued pada kait wp_enqueue_script, yang terjadi pada awal proses wp_head. Kait wp_print_scripts terjadi tepat sebelum skrip dicetak, dan karenanya terbaru dalam proses. (Otto)

Mengikuti logika yang sama yang bisa kita gunakan wp_print_stylesuntuk menghapus font Open Sans:

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

Ini berhasil.

Mattvic
sumber
6

Pada WP 3.8+, saya berhasil menghapus 'Open Sans' dari gaya frontend saya menggunakan intisari trik trik :

<?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' dapat menjadi ketergantungan plugin.

sglessard
sumber
Ini berhasil bagi saya pada tema yang berbeda, bahkan. Baru saja menjatuhkannya di Fungsi Tema anak saya ..... Saya sangat, sangat senang tentang ini. Saya di China, jadi panggilan Google yang tidak diinginkan bukan optimasi kecil - halaman saya menunggu selama beberapa menit menunggu panggilan ke google mati. Ini sangat besar bagi saya :-D
Mike M
Oh, dan ya saya mengidentifikasinya dalam sebuah plugin (menyelidiki dengan menonaktifkan satu per satu) == Jetpack ..... besar dan sangat sulit untuk menemukan sesuatu, apalagi memodifikasi. Terima kasih, WP
Mike M
4

Di functions.php dari Twenty Twelve v1.1, sebuah komentar menjelaskan cara menghapus stylesheet dari wp_enqueue_scriptshook:

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

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

Upaya Anda yang tidak berhasil tidak memiliki parameter prioritas di add_action(). Tema induk enqueues gaya dengan prioritas default 10, sehingga tema anak harus dequeue dengan prioritas 11.

Rafi
sumber
3

Anda akan menemukan bahwa WordPress sendiri juga memuat Open Sans (setidaknya versi 3.8). Bahkan, itu memuat Open Sans tiga kali untuk saya: satu untuk admin WP, satu untuk editor TinyMCE, dan satu lagi untuk halaman.

Jika tujuan Anda menghapus Open Sans sama sekali, Anda harus meretas WordPress itu sendiri (atau tetap menggunakan versi yang lebih lama).

Kode saya sendiri untuk menghapus Open Sans (setidaknya ketika pengguna tidak masuk, yang sebagian besar waktu) adalah tema saya functions.php:

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

function ays_setup () {

    / * tidak ada font Sans Terbuka di TinyMCE * /
    remove_filter ('mce_css', 'twentytwelve_mce_css');

    / * tidak ada font Sans Terbuka untuk halaman * /
    remove_action ('wp_enqueue_scripts', 'twentytwelve_scripts_styles');
    add_action ('wp_enqueue_scripts', 'ays_scripts_styles');
}

function ays_scripts_styles () {
    global $ wp_styles;

    / *
     * Menambahkan JavaScript ke halaman dengan formulir komentar untuk mendukung
     * situs dengan komentar berulir (saat digunakan).
     * /
    if (is_singular () && comments_open () && get_option ('thread_comments'))
        wp_enqueue_script ('komentar-balasan');

    // Menambahkan JavaScript untuk menangani perilaku menu sembunyi dan tunjukkan menu.
    wp_enqueue_script ('twentytwelve-navigation', get_template_directory_uri (). '/js/navigation.js', array (), '1.0', true);

    // Memuat stylesheet utama kami.
    wp_enqueue_style ('twentytwelve-style', get_stylesheet_uri ());

    // Memuat stylesheet khusus Internet Explorer.
    wp_enqueue_style ('twentytwelve-ie', get_template_directory_uri (). '/css/ie.css', array ('gaya dua puluh dua'), '20121010');
    $ wp_styles-> add_data ('twentytwelve-ie', 'conditional', 'lt IE 9');
}

twentytwelve_scripts_stylesmemiliki semuanya twentytwelve_scripts_styleskecuali bit yang memuat Open Sans.

Júlio Reis
sumber