Como faço para extrair o arquivo CSS de um tema pai?

30

Meu tema pai (Starkers) adiciona um arquivo CSS que estou tentando remover (eu quero usar @import em vez disso, para que eu possa substituir os estilos mais facilmente). Starkers tem o seguinte em suas funções.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

Eu tentei o seguinte no child functions.php, mas as tags de link e script ainda aparecem na seção head.

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

Eu verifiquei novamente se eles são codificados no cabeçalho pai e não são.

    
por jmotes 18.09.2012 / 18:20
fonte

2 respostas

37
  

Eu quero usar o @import para poder modificar estilos com mais facilidade

Simplesmente. Não faça Faz. Isso.

Você simplesmente salta para o mesmo gancho e, em seguida, cancela o registro / desenfileire os estilos / scripts e adiciona os seus estilos personalizados.

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

O motivo para desativar e cancelar o registro dos scripts é simples:

  

Observe que, se você quiser usar esses identificadores ( 'screen' ou 'site' ) depois de retirá-los, precisará cancelar o registro deles também. Por exemplo: wp_deregister_style( 'screen' ); e wp_deregister_script( 'site' ); - peterjmag

    
por kaiser 18.09.2012 / 18:37
fonte
-1

Veja como você poderia remover a folha de estilo do tema pai e substituí-la pela folha de estilo de um tema filho OU apenas remover a folha de estilo do pai de ser carregada.

Funções do tema Starker.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    //...
    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

Lembre-se do identificador que eles chamam de estilo 'tela'

Substituindo o tema pai pela folha de estilo do tema filho

Funções do tema Starker-Child.php:

function​ ​custom_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

    //Replace with custom child styles
    wp_register_style( 'screen-child',​ ​trailingslashit( get_template_directory_uri() ). 'screen.css' );
    wp_enqueue_style( 'screen-child​'​);
}

add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );

Remover a folha de estilo do tema pai

Funções do tema Starker-Child.php:

function​ ​remove_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

}

add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );

Damos ao add_action () uma prioridade de 20 (o padrão é 10) do tema filho, porque queremos que ele seja executado APÓS o tema pai ter sido enfileirado. Quanto maior a prioridade, mais tarde ela será executada. 20 > 10 Assim, a ação do tema filho será sempre executada após o tema pai já ter sido executado.

    
por CHergott 07.03.2016 / 22:52
fonte