wp_enqueue_style para Plugin com várias folhas de estilo

4

Estou criando um plug-in de navegação que adiciona animações à sua navegação no wordpress.

Eu li no Wordpress Codex que eu precisaria usar wp_enqueue_style ().

Primeiro, como eu uso esse código para vários arquivos css? no meu arquivo de plugins principal.

Agora, de acordo com esta pergunta, gostaria de adicionar folhas de estilo como esta:

function add_my_stylesheet() 
{
    wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
}

add_action('admin_print_styles', 'add_my_stylesheet');

Como meu plug-in requer várias folhas de estilo a serem adicionadas, quais dos dois códigos devo usar?

function add_my_stylesheet() 
{
    wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
}

add_action('admin_print_styles', 'add_my_stylesheet');

function add_my_stylesheet1() 
{
    wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}

add_action('admin_print_styles', 'add_my_stylesheet1');

Ou

function add_my_stylesheet1() 
{
    wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS.css', __FILE__ ) );
    wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}

add_action('admin_print_styles', 'add_my_stylesheet1');

Agora eu sei onde adicionar este código. Mas como eu chamo a folha de estilo que eu quero usar?

Além disso, apenas para limpar o que meu plugue faria: O arquivo principal do plugin só carregaria a folha de estilo necessária. E a página de opções permitiria ao usuário selecionar qual folha de estilo exigir.

por exemplo, no formato php eu usaria o seguinte:

<link href="nav-<?php echo $name; ?>.css">

O $ name deve ser o escolhido na página de opções, mas como faço para chamar a folha de estilo desejada?

Espero que minha pergunta esteja clara o suficiente.

    
por Uzair Hayat 03.03.2014 / 19:26

3 respostas

5

Para responder à sua primeira pergunta, use o segundo estilo, por exemplo

function add_my_stylesheet() 
{
    wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
    wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}

add_action('admin_print_styles', 'add_my_stylesheet');

O que a add_action() function faz é dizer ao WordPress, "When a ação admin_print_styles ocorre, execute esta função add_my_stylesheet() ." Confusamente, a prática de usar as ações admin_print_styles e admin_enqueue_styles para enfileirar folhas de estilo está incorreta - por mais intuitiva que seja, você deve usar admin_enqueue_scripts em vez disso.

As chamadas para wp_enqueue_style() adicionam as folhas de estilo especificadas a uma lista de folhas de estilo que serão carregadas (se você Para especificar o argumento de dependências, o WordPress também cuidará de garantir que suas folhas de estilo sejam carregadas na ordem correta). Você não precisa "chamar" uma folha de estilo enfileirada conforme sugerido. Se ela for enfileirada, ela será impressa em um elemento HTML <link ...> na seção <head></head> na mesma maneira que o WordPress carrega suas próprias folhas de estilo.

Para selecionar qual folha de estilo será carregada, basta adicionar sua lógica à sua função add_my_stylesheet() ; Se você não quiser que uma folha de estilo seja usada, você não a enfileira, por exemplo:

function admincolorplugin_enqueue_styles() 
{
    // Get the user's stylesheet choice from the options, default to "white"
    $stylesheet = get_option( 'admincolorplugin_stylesheet', 'white' );

    // Conditionally load the appropriate stylesheet
    if( $stylesheet == 'black' ) {
        wp_enqueue_style( 'admincolorplugin-black', plugins_url( '/css/black.css', __FILE__ ) );
    }
    else {
        wp_enqueue_style( 'admincolorplugin-white', plugins_url( '/css/white.css', __FILE__ ) );
    }
}

add_action('admin_enqueue_scripts', 'admincolorplugin_enqueue_styles' );
    
por bosco 03.03.2014 / 21:39
0

Use um if para verificar se está de acordo com seus critérios, por exemplo

  1. uma página / postagem específica (id)
  2. todas as páginas / post
  3. relacionado à opção de administrador.

Dessa forma, ele só puxará o CSS que você deseja na página desejada / quando a opção de administração desejada estiver selecionada.

    function add_my_stylesheet1() 
    {
        if(is_page(41)){
            wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS.css', __FILE__ ) );
        }else{
            wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
        }
    }

Ou:

    function add_my_stylesheet1() 
    {
        $adminopt = get_option( $option, $default );
        if($adminopt == "Normal CSS"){
            wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
        }else{
            wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
        }
    }
    
por ScottMcGready 03.03.2014 / 19:54
0
add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' );

/** * Add stylesheet to the page*/
function safely_add_stylesheet_to_admin() {
    wp_enqueue_style( 'prefix-style', plugins_url('plugin_styles.css', __FILE__) );
    wp_enqueue_style( 'prefix-basic', plugins_url('/css/basic.css', __FILE__) );

}
    
por vishakha 22.01.2017 / 19:43