web-dev-qa-db-fra.com

Comment mettre le style en file d'attente avec wp_enqueue_style ()

Je développe un thème. J'ai ajouté les codes (ci-dessous) dans le header.php. Mais je l'ai postée dans le référentiel de thèmes WP. Elle est en cours de révision. Le critique m'a informé de la mise en file d'attente du style avec wp_enqueue_style()/wp_enqueue_script(). Mais je ne comprends pas comment l'implémenter avec la fonction. J'ai vu les instructions wp_enqueue_style(); dans le Codex, mais je ne comprends pas comment mettre l'ensemble des codes avec leurs conditions.

<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>
  • COMMENT?
8
Mayeenul Islam

Voici ce que vous pourriez faire:

1 - Mettez le CSS dans un fichier séparé et enregistrez-le dans votre répertoire de thème.
2 - Ajoutez le code suivant dans votre 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' );
14
Mike Madern

Ajout d'un deuxième fichier style.css pour les archives de page de catégorie.

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' );    
    }    
}
1
Brad Dalton