Remover Open Sans do tema Twenty Twelve

14

Estou criando um tema filho para o Twenty Twelve v1.0 e desejo remover a fonte Open Sans.

O Open Sans é adicionado nas funções do Twenty Twelve.php:

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

Eu tentei cancelar o registro / desenfileirar a folha de estilo nas funções do meu childtheme.php (veja os exemplos abaixo), mas sem efeito:

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

Alguma idéia de como posso remover esse arquivo? Obrigado!

    
por Mattvic 28.09.2012 / 09:16

4 respostas

12

Encontrei a resposta aqui :

  

As chamadas dequeuing de script devem ser adicionadas à ação wp_print_scripts   gancho(..). Isso ocorre porque os scripts geralmente são enfileirados na   Ganho wp_enqueue_script, que acontece no início do processo wp_head.   O gancho wp_print_scripts acontece logo antes dos scripts serem impressos,   e, portanto, é o mais recente no processo. (Otto)

Seguindo a mesma lógica, podemos usar wp_print_styles para remover a fonte Open Sans:

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

Isso funcionou.

    
por Mattvic 28.09.2012 / 10:06
6

No WP 3.8+, eu removi com sucesso 'Open Sans' dos meus estilos frontend usando a essência do thetrickster :

<?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' pode ser uma dependência de plug-in.

    
por sglessard 19.02.2014 / 17:05
4

No arquivo functions.php do Twenty Twelve v1.1, um comentário explica como remover a folha de estilo do wp_enqueue_scripts hook:

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

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

Sua tentativa que não funcionou não continha o parâmetro de prioridade no add_action() . O tema pai enfileira o estilo com a prioridade padrão de 10, portanto, o tema filho tem que desenfileirá-lo com prioridade 11.

    
por Rafi 21.03.2013 / 17:03
3

Você verá que o próprio WordPress também carrega o Open Sans (pelo menos a versão 3.8). Na verdade, ele estava carregando o Open Sans três vezes para mim: um para o administrador do WP, um para o editor do TinyMCE e outro para a página.

Se o seu objetivo é remover o Open Sans, você terá que hackear o WordPress (ou ficar com uma versão mais antiga).

Meu próprio código para remover o Open Sans (pelo menos quando um usuário não está logado, o que é na maior parte do tempo) é o functions.php :

do meu tema.
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 tem tudo em twentytwelve_scripts_styles , exceto o bit que carrega Open Sans.

    
por Júlio Reis 21.01.2014 / 22:01