Cómo encolar estilos usando wp_enqueue_style()
Estoy desarrollando un tema. Agregué los códigos (abajo) en el header.php. Pero cuando lo publiqué en el repositorio de temas de WP, está bajo revisión, y el revisor me informó que debo encolar el estilo con wp_enqueue_style()/ wp_enqueue_script(). Pero no puedo entender cómo implementarlo con la función. He visto la referencia de wp_enqueue_style(); en el Codex, pero no puedo entender cómo poner todo el conjunto de códigos con sus condiciones.
<style type="text/css">
<?php
// Si el menú está presente, entonces se cargan los CSS
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>
- ¿CÓMO HACERLO?
Esto es lo que podrías hacer:
1 - Colocar el CSS en un archivo separado y guardarlo en el directorio de tu tema.
2 - Agregar el siguiente código en tu 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' );
¿Por qué no poner los condicionales dentro del callback de wp_enqueue_scripts? Nada de eso necesita ir en el encabezado del documento.
Chip Bennett
+1. Edité para reemplazar get_bloginfo( 'stylesheet_directory' ) con get_template_directory_uri(). Las referencias al directorio de stylesheet deben reservarse para los Child Themes.
Chip Bennett
Bien y perfecto. Esto me solucionó el problema aquí. Gracias Mike. Agregaré este hilo al Codex, in sha Allah. Gracias.
Mayeenul Islam
Agregar un segundo archivo style.css para las páginas de archivo de categorías.
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' );
}
}