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.

+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.

Bien y perfecto. Esto me solucionó el problema aquí. Gracias Mike. Agregaré este hilo al Codex, in sha Allah. Gracias.

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