¿Por qué style.css no se está cargando en la cola?

13 abr 2011, 17:33:08
Vistas: 33.1K
Votos: 11

Tengo un tema bastante básico y acabo de descubrir que mi archivo style.css no se está cargando en el <head>. Ya he buscado pero no puedo encontrar por qué no se está cargando.

Ya inspeccioné el objeto global $wp_styles pero no pude encontrar nada:

function style_test() 
{ 
    $wp_styles = new WP_Styles();

    echo '<pre>'; 
        // $wp_styles->enqueue está completamente vacío
        print_r( $wp_styles->registered ); 
    echo '</pre>'; 
} 
add_action( 'wp_print_scripts', 'style_test', 0 );

Dentro del objeto tampoco puedo encontrar mis hojas de estilo registradas/en cola (se cargan), así que supongo que estoy haciendo algo mal al inspeccionarlo también. ¿Alguna idea?

Nota:
Si lo pongo en cola manualmente, mi archivo style.css se carga. Solo la carga automática no funciona. Además, puedo acceder al archivo con get_theme_data( TEMPLATEPATH.'/style.css' ); sin problemas.

0
Todas las respuestas a la pregunta 4
1
17

Las hojas de estilo del tema normalmente no se encolan, se cargan usando..

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

Por lo tanto, naturalmente no las ves en el array de estilos..

Por supuesto que puedes (si lo prefieres) usar encolado en su lugar.

13 abr 2011 17:40:35
Comentarios

La hoja de estilos principal style.css - al igual que cualquier otra hoja de estilos - debe estar codificada directamente en el encabezado del documento, o enganchada manualmente a wp_head o wp_print_styles. WordPress no engancha automáticamente style.css.

Chip Bennett Chip Bennett
13 abr 2011 17:50:11
2

La forma recomendada de hacerlo es poniendo en cola el style.css en el functions.php del tema.

Añade esto a functions.php

 /**
 * Cargar CSS y JS de la manera correcta
 */
function myprefix_load_css_y_js() {
    wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'myprefix_load_css_y_js' );

Puedes consultar esto en el manual de temas de WordPress aquí y ver ejemplos aquí.

26 ago 2017 11:57:38
Comentarios

Votado a favor, pero una pequeña corrección es que probablemente sea mejor definir la función de forma anónima dentro de la llamada add_action en lugar de agregarla al espacio de nombres global, ya que no se llama en otro lugar.

tklodd tklodd
16 may 2022 22:00:13

Hola @kloddant, gracias por la sugerencia. Si bien estoy de acuerdo en que tenerla en el espacio de nombres global puede ser problemático, prefiero que tenga un nombre. Solo para que exista la opción de desengancharla programáticamente en un futuro si es necesario. Normalmente soluciono esto prefijando la función con algo único y largo.

Arun Basil Lal Arun Basil Lal
17 may 2022 10:40:17
1

aunque ya está resuelto, creo que esto también puede ayudar a alguien.

Puedes cargar style.css añadiendo esta línea de código en cualquier página individual o plantilla personalizada.

wp_enqueue_style('style', get_stylesheet_uri() );
14 jun 2020 18:23:05
Comentarios

Esto duplica la respuesta de @Arun Basil Lal de arriba.

kaiser kaiser
14 jun 2020 23:12:45
0

Un pequeño detalle sobre la respuesta de Arun mencionada anteriormente. Como dijeron, deberías encolarlo en el archivo functions.php, pero probablemente sea mejor definirlo y llamarlo de forma anónima dentro de la función add_action, ya que no lo estás llamando en ningún otro lugar. De esta manera, evitas agregarlo al espacio de nombres global.

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('style', get_stylesheet_uri());
});
16 may 2022 22:04:49