Encolar una hoja de estilo para la página de inicio de sesión y hacer que aparezca en el elemento principal

10

Intento diseñar la página de inicio de sesión en mi tema. Muy simple:

add_action( 'login_enqueue_scripts', function()
{
    wp_enqueue_style( 'TEST', get_template_directory_uri() . '/css/login.css' );
});

Lamentablemente, no funciona como se esperaba. El elemento link aparece en la página de inicio de sesión body , muy tarde.

Salida procesada:

<link rel='stylesheet' id='TEST-css'  href='http://themes.wp/t5-theme-base/css/login.css?ver=3.9-alpha' type='text/css' media='all' />
<div class="clear"></div>
</body>
</html>

Esto está mal, ¿cómo puedo imprimir el elemento de enlace en el head ?

    
pregunta fuxia 28.12.2013 - 14:22

1 respuesta

26

Para cada acción enqueue , hay una acción print_styles correspondiente:

  • wp_enqueue_scriptswp_print_styles
  • admin_enqueue_scriptsadmin_print_styles
  • customize_controls_enqueue_scriptscustomize_controls_print_styles

No para la página de inicio de sesión. No hay acción o función login_print_styles , por lo que las hojas de estilo se descartan en do_action( 'login_footer' ); .

Pero hay una solución simple:

if ( ! has_action( 'login_enqueue_scripts', 'wp_print_styles' ) )
    add_action( 'login_enqueue_scripts', 'wp_print_styles', 11 );

WordPress ahora imprimirá todos los elementos link registrados para esa página en el lugar adecuado, el elemento head , justo después de las hojas de estilo incorporadas.

Resultado:

<link rel='stylesheet' id='dashicons-css'  href='http://git.wp/wp-includes/css/dashicons.min.css?ver=3.9-alpha' type='text/css' media='all' />
<link rel='stylesheet' id='wp-admin-css'  href='http://git.wp/wp-admin/css/wp-admin.min.css?ver=3.9-alpha' type='text/css' media='all' />
<link rel='stylesheet' id='buttons-css'  href='http://git.wp/wp-includes/css/buttons.min.css?ver=3.9-alpha' type='text/css' media='all' />
<link rel='stylesheet' id='colors-fresh-css'  href='http://git.wp/wp-admin/css/colors.min.css?ver=3.9-alpha' type='text/css' media='all' />
<!--[if lte IE 7]>
<link rel='stylesheet' id='ie-css'  href='http://git.wp/wp-admin/css/ie.min.css?ver=3.9-alpha' type='text/css' media='all' />
<![endif]-->
<link rel='stylesheet' id='TEST-css'  href='http://themes.wp/t5-theme-base/css/login.css?ver=3.9-alpha' type='text/css' media='all' />
    
respondido por el fuxia 28.12.2013 - 14:22

Lea otras preguntas en las etiquetas