¿Por qué wp_head() crea un margen superior en el encabezado de mi tema?

19 may 2011, 07:03:56
Vistas: 14.2K
Votos: 12

Estoy creando un tema personalizado, y los elementos se comportan como deberían, pero cuando coloco la etiqueta <?php wp_head() ?> aparece un margen superior en el encabezado de mi tema.

Cuando elimino <?php wp_head(); ?> el margen desaparece. He estado con esto por un tiempo, cualquier ayuda sería genial.

1
Comentarios

¿algo que se engancha a wp_head está generando espacios antes de que se emita cualquier HTML?

Milo Milo
19 may 2011 07:15:22
Todas las respuestas a la pregunta 8
3
12

Difícil de asegurar sin verlo, pero una suposición fundamentada:

Lo más probable es que sea el CSS de la barra de administración, que solo aparece cuando estás conectado. El <?php wp_head() ?> incluirá el CSS para ella, y <?php wp_footer(); ?> incluye el HTML para la barra de administración.

Si miras, en realidad debería ser un margin-top agregado a la etiqueta html.

19 may 2011 08:08:32
Comentarios

de acuerdo, he visto este problema varias veces

MartinJJ MartinJJ
19 may 2011 10:48:18

Sí, he ayudado a varias personas y he visto esto. Creo que el mayor problema es que la gente no incluye wp_footer() en la plantilla

Ryan Gibbons Ryan Gibbons
19 may 2011 18:21:52

Para el OP - creo que deberías aceptar esta respuesta.

Greeso Greeso
6 jul 2015 07:28:44
0

Si intentas ocultar la Barra de Administración enganchándote al filtro show_admin_bar, pero haces esto demasiado tarde (por ejemplo, init con la prioridad por defecto es demasiado tarde), obtendrás un margen superior adicional de 28px pero sin la barra de administración visible.

19 may 2011 18:02:17
0

El bloque de estilo del margen es generado por la función _admin_bar_bump_cb que se ejecuta en la acción wp_head. Puedes eliminar esta acción llamando:

remove_action('wp_head', '_admin_bar_bump_cb');

Yo lo coloqué en mi función de enqueue scripts y eliminó exitosamente el margen superior generado, pero estoy seguro de que podrías colocarlo en cualquier parte del functions.php y funcionaría correctamente.

De esta manera no necesitas un override tonto en tu CSS =)

29 abr 2013 01:38:06
1

También me encontré con el mismo problema y lo resolví agregando esto:

html{ margin-top:0px !important;}

Colócalo en la parte superior del archivo CSS de tu tema.

29 jul 2011 04:46:25
Comentarios

esta respuesta no funciona porque los 28px se añaden en línea lo cual tiene precedencia sobre cualquier cosa en un archivo css

User User
10 ene 2012 20:46:43
0

Esto también me ha pasado, este espacio es para la barra de administración en la parte superior de tu tema que se muestra a un usuario conectado.

Si has iniciado sesión en el panel de WordPress en el mismo navegador donde estás usando el tema personalizado, entonces ahí está el problema.

Simplemente cierra sesión de la cuenta de administrador de WordPress y vuelve a abrir tu tema personalizado.

24 dic 2011 11:35:49
1

Agregar "margin-top: 0px !important" al inicio de tu archivo CSS en realidad funcionará, pero SOLO si reorganizas la información del encabezado para llamar al archivo CSS DESPUÉS de que se ejecute wp_head.

El atributo CSS más bajo siempre será el que se aplique, el 100% del tiempo.

24 jun 2012 19:16:52
Comentarios

"El atributo CSS más bajo se aplicará, el 100% del tiempo." - No necesariamente, depende de la especificidad de otros selectores presentes. Por ejemplo, #content div.somediv siempre tendrá prioridad sobre div.somediv sin importar dónde esté definido este último.

t31os t31os
29 abr 2013 12:02:12
0

Deberías ver qué clase está añadiendo el margen con Firebug o una herramienta similar.

19 may 2011 08:34:52
0
-1

Prueba esto,

html { margin-top:0px; padding-top:0px; }
3 ene 2017 18:36:48