I´m creating a child theme for Twenty Twelve v1.0 and I want to remove the Open Sans font.

Open Sans is added in Twenty Twelve´s functions.php:

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

I´ve tried to deregister/dequeue the stylesheet in my childtheme´s functions.php (see examples below) but to no effect:

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

Any ideas how I can remove this file? Thanks!


4 Answers 4


Found the answer here:

Script dequeuing calls should be added to the wp_print_scripts action hook(..). This is because scripts are typically enqueued on the wp_enqueue_script hook, which happens early in the wp_head process. The wp_print_scripts hook happens right before scripts are printed, and thus is latest in the process. (Otto)

Following the same logic we can use wp_print_styles to remove the Open Sans font:

function remove_open_sans() {
   wp_dequeue_style( 'twentytwelve-fonts' );

This did the trick.


On WP 3.8+, I sucessfully removed 'Open Sans' from my frontend styles using thetrickster's gist:

// 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');

'Open Sans' can be a plugin dependancy.

  • This worked for me on a different theme, even. Just dropped it in my child Theme Functions..... I am super, super happy about this. I'm in China, so unwanted google calls are not a small optimization -- my pages hang for a couple minutes waiting for the call to google to die. This is huge for me :-D
    – Mike M
    Commented Dec 26, 2017 at 12:45
  • Oh, and yes I identified it in a plugin (probing with deactivating one at a time) == Jetpack..... huge and so very difficult to find something, let alone modify. Thanks, WP
    – Mike M
    Commented Dec 26, 2017 at 12:46

In the functions.php of Twenty Twelve v1.1, a comment explains how to remove the stylesheet from the wp_enqueue_scripts hook:

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

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

Your attempt that didn't work was missing the priority parameter in the add_action(). The parent theme enqueues the style with the default priority of 10, so the child theme has to dequeue it with priority 11.


You'll find that WordPress itself also loads Open Sans (at least version 3.8). In fact, it was loading Open Sans three times for me: one for the WP admin, one for the TinyMCE editor, and another for the page.

If your goal is removing Open Sans altogether, you'll have to hack WordPress itself (or stay with an older version).

My own code to remove the Open Sans (at least when a user isn't logged in, which is most of the time) is my theme's functions.php:

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

function ays_setup() {

    /* no Open Sans font in TinyMCE */
    remove_filter( 'mce_css', 'twentytwelve_mce_css' );

    /* no Open Sans font for the page */
    remove_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );
    add_action( 'wp_enqueue_scripts', 'ays_scripts_styles' );

function ays_scripts_styles() {
    global $wp_styles;

     * Adds JavaScript to pages with the comment form to support
     * sites with threaded comments (when in use).
    if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
        wp_enqueue_script( 'comment-reply' );

    // Adds JavaScript for handling the navigation menu hide-and-show behavior.
    wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );

    // Loads our main stylesheet.
    wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );

    // Loads the Internet Explorer specific stylesheet.
    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_styles has everything in twentytwelve_scripts_styles except the bit that loads Open Sans.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.