Comment mettre en file d'attente le style à l'aide de wp_enqueue_style ()


9

Je développe un thème. J'ai ajouté les codes (ci-dessous) dans le header.php. Mais je l'ai posté dans le référentiel de thèmes WP, et il est en cours de révision, et le critique m'a informé de mettre le style en file d'attente avec wp_enqueue_style()/ wp_enqueue_script(). Mais je ne comprends pas comment l'implémenter avec la fonction. J'ai vu le réalisé wp_enqueue_style();dans Codex, mais je ne comprends pas comment mettre tout le tas de 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?

Réponses:


16

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' );

1
Pourquoi ne pas mettre les conditions dans le wp_enqueue_scriptsrappel? Rien de tout cela ne doit aller dans la tête du document.
Chip Bennett

1
Je n'y ai pas pensé, un montage est en cours
Mike Madern

+1. J'ai modifié pour remplacer get_bloginfo( 'stylesheet_directory' )par get_template_directory_uri(). Les références au répertoire des feuilles de style doivent être réservées aux thèmes enfants.
Chip Bennett

Nice & Fine. Cela m'a résolu ici. Merci Mike. Je vais ajouter ce fil dans le Codex , inshALLAH. Merci.
Mayeenul Islam

1

Ajout d'un deuxième style.cssfichier pour les archives des pages 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' );    
    }    
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.