Cum să încarci stilurile CSS folosind wp_enqueue_style()

5 mar. 2013, 16:02:59
Vizualizări: 85.2K
Voturi: 11

Dezvolt o temă WordPress. Am adăugat codul de mai jos în header.php. După ce am trimis tema în depozitul WP pentru evaluare, recenzorul m-a informat să încarc stilurile folosind wp_enqueue_style()/ wp_enqueue_script(). Nu înțeleg cum să implementez acest lucru cu funcția respectivă. Am văzut în Codex documentația pentru wp_enqueue_style();, dar nu înțeleg cum să convertesc tot codul cu condițiile lor.

<style type="text/css">
<?php
// Dacă meniul există, atunci se încarcă CSS-ul

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>
  • CUM SĂ FAC?
0
Toate răspunsurile la întrebare 2
4
20

Iată ce ai putea face:

1 - Pune CSS-ul într-un fișier separat și salvează-l în directorul temei tale.
2 - Adaugă următorul cod în fișierul tău 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' );
5 mar. 2013 16:12:32
Comentarii

De ce să nu pui condiționalele în interiorul callback-ului wp_enqueue_scripts? Nimic din acea logică nu trebuie să fie în head-ul documentului.

Chip Bennett Chip Bennett
5 mar. 2013 17:01:10

Nu m-am gândit la asta, o modificare este pe drum

Mike Madern Mike Madern
5 mar. 2013 17:05:24

+1. Am editat pentru a înlocui get_bloginfo( 'stylesheet_directory' ) cu get_template_directory_uri(). Referințele la directorul stylesheet ar trebui rezervate pentru Temele Copil.

Chip Bennett Chip Bennett
5 mar. 2013 17:19:38

Drăguț și bine. M-a ajutat aici. Mulțumesc, Mike. Voi adăuga acest thread în Codex, inșALLAH. Mulțumesc.

Mayeenul Islam Mayeenul Islam
8 mar. 2013 12:30:03
0

Adăugarea unui al doilea fișier style.css pentru arhivele paginilor de categorii.

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' );    
    }    
}
8 iun. 2013 16:23:55