Come accodare lo stile usando wp_enqueue_style ()


9

Sto sviluppando un tema. Ho aggiunto i codici (sotto) nel header.php. Ma l'ho pubblicato nel repository di temi WP, ed è in fase di revisione e il revisore mi ha informato di accodare lo stile con wp_enqueue_style()/ wp_enqueue_script(). Ma non riesco a capire come implementarlo con la funzione. Ho visto la regia wp_enqueue_style();in Codex, ma non riesco a capire come mettere l'intero gruppo di codici con le loro condizioni.

<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>
  • COME?

Risposte:


16

Questo è ciò che potresti fare:

1 - Inserisci il CSS in un file separato e salvalo nella directory del tema.
2 - Aggiungi il seguente codice nel tuo 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
Perché non mettere i condizionali all'interno del wp_enqueue_scriptscallback? Niente di tutto ciò deve andare nella testa del documento.
Chip Bennett

1
Non ci avevo pensato, una modifica è in arrivo
Mike Madern,

+1. Ho modificato per sostituire get_bloginfo( 'stylesheet_directory' )con get_template_directory_uri(). I riferimenti alla directory del foglio di stile devono essere riservati per i temi figlio.
Chip Bennett

Bello e bene. Mi ha risolto qui. Grazie Mike. Aggiungerò questa discussione in Codex , inshALLAH. Grazie.
Mayeenul Islam

1

Aggiunta di un secondo style.cssfile per gli archivi delle pagine delle categorie.

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' );    
    }    
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.