Como enfileirar o estilo usando wp_enqueue_style ()


9

Estou desenvolvendo um tema. Eu adicionei os códigos (abaixo) no arquivo header.php. Mas eu o publiquei no repositório de temas do WP, e ele está sendo revisado, e o revisor me informou para enfileirar o estilo com wp_enqueue_style()/ wp_enqueue_script(). Mas não consigo entender como implementá-lo com a função Eu vi o dirigido wp_enqueue_style();no Codex, mas não consigo entender como colocar todo o conjunto de códigos com suas condições.

<style type="text/css">
<?php
// If the menu presents, then CSS loads

if ( has_nav_menu( 'secondary' ) ) {
?>
.sec-menu{
width: 100%;
background: #333;
height: 26px;
font-size:16px;
text-transform:uppercase;
}
<?php } ?>
<?php
if ( has_nav_menu( 'primary' ) ) {
?>
#access{
background-color: #333;
height: 26px;
}
<?php } ?>
<?php
if ( !has_nav_menu( 'primary' ) && !has_nav_menu( 'secondary' ) ) {
?>
.sec-menu,
#access{
border-bottom: 2px solid #333;
}
<?php } ?>
</style>
  • COMO?

Respostas:


16

Isto é o que você poderia fazer:

1 - Coloque o CSS em um arquivo separado e salve-o no diretório do tema.
2 - Adicione o seguinte código no seu functions php:

function wpse_89494_enqueue_scripts() {
  if ( has_nav_menu( 'secondary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_1', 
      get_template_directory_uri() . '/your-style_1.css' 
    );
  }
  if ( has_nav_menu( 'primary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_2', 
      get_template_directory_uri() . '/your-style_2.css' 
    );
  }
  if ( ! has_nav_menu( 'primary' ) && ! has_nav_menu( 'secondary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_3', 
      get_template_directory_uri() . '/your-style_3.css' 
    );
  }
}

add_action( 'wp_enqueue_scripts', 'wpse_89494_enqueue_scripts' );

1
Por que não colocar os condicionais dentro do wp_enqueue_scriptsretorno de chamada? Nada disso precisa constar no cabeçalho do documento.
Chip Bennett

1
Eu não tinha pensado nisso, uma edição está a caminho
Mike Madern

+1. Eu editei para substituir get_bloginfo( 'stylesheet_directory' )com get_template_directory_uri(). As referências ao diretório da folha de estilo devem ser reservadas para Temas filho.
Chip Bennett

Nice & Fine. Isso me resolveu aqui. Obrigado Mike. Vou adicionar esta discussão no Codex , inshALLAH. Obrigado.
Mayeenul Islam 8/03/13

1

Adicionando um segundo style.cssarquivo para arquivos de página de categoria.

add_action( 'wp_enqueue_scripts', 'wpsites_second_style_sheet' );
function wpsites_second_style_sheet() {
    if ( is_category() ) {
       wp_register_style( 'second-style', get_template_directory_uri() .'css/second-style.css', array(), '20130608');
       wp_enqueue_style( 'second-style' );    
    }    
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.