¿Por qué style.css no se está cargando en la cola?
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.

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.

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

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.

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.

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

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