Perché wp_head () sta creando un margine superiore nella parte superiore dell'intestazione del mio tema?


8

Sto creando un tema personalizzato e gli elementi si comportano come dovrebbero, ma quando posiziono il <?php wp_head() ?>tag ottengo un margine superiore, nella parte superiore dell'intestazione del tema.

Quando rimuovo <?php wp_head(); ?>il margine scompare. Sono stato a questo per un po 'di tempo qualsiasi aiuto sarebbe grande.


1
qualcosa che si aggancia a wp_head sta emettendo spazio prima che venga emesso qualsiasi HTML?
Milo,

Risposte:


10

Difficile da vedere senza guardarlo, ma un'ipotesi colta:

Molto probabilmente è il CSS per la barra di amministrazione, che appare solo quando si è effettuato l'accesso. <?php wp_head() ?>Includerà il CSS per esso e <?php wp_footer(); ?>include l'html per la barra di amministrazione.

Se guardi, in realtà dovrebbe essere un margine superiore aggiunto al tag html.


d'accordo, visto questo problema alcune volte
MartinJJ

1
Sì, ho aiutato diverse persone e ho visto questo. Penso che il problema più grande siano le persone che non includono wp_footer () nel template
Ryan Gibbons,

All'OP - Penso che dovresti accettare questa risposta.
Greeso,

2

Se si tenta di nascondere la barra di amministrazione agganciandosi al show_admin_barfiltro, ma farlo troppo tardi ( initcon la priorità predefinita è troppo tardi, ad esempio), si otterrà un margine superiore di 28px extra ma nessuna barra di amministrazione lì.


1

Questo è successo anche a me, questo spazio è per la barra di amministrazione nella parte superiore del tema che viene visualizzata per un utente connesso.

Se hai effettuato l'accesso alla dashboard di WordPress nello stesso browser in cui stai utilizzando il tema personalizzato, allora c'è il problema.

Esci semplicemente dall'account amministratore di WordPress e apri di nuovo il tema personalizzato.


1

Ho riscontrato anche lo stesso problema e l'ho risolto aggiungendo questo:

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

Inserisci nella parte superiore del file CSS del tuo tema.


2
questa risposta non funziona perché il 28px viene aggiunto in linea che ha la precedenza su qualsiasi cosa in un file css

1

l'aggiunta di "margin-top: 0px! important" all'inizio del tuo file CSS funzionerà, ma SOLO se riorganizzi le informazioni dell'intestazione per chiamare il file css DOPO che wp_head viene chiamato.

l'attributo CSS più basso verrà applicato, il 100% delle volte.


"Verrà applicato l'attributo CSS più basso, il 100% delle volte." - Non necessariamente, dipende dalla specificità di altri selettori presenti. Es. #content div.somedivavrà sempre la priorità su div.somedivindipendentemente da dove sia definito quest'ultimo.
t31os,

1

Il blocco di stile del margine viene emesso dalla _admin_bar_bump_cbfunzione che viene eseguita wp_headsull'azione. Puoi rimuovere l'azione chiamando:

remove_action('wp_head', '_admin_bar_bump_cb');

L'ho inserito nel mio hook di funzione degli script di accodamento e ha rimosso con successo l'output del margine superiore, ma sono sicuro che potresti inserirlo in qualunque funzione nel.php e farlo funzionare correttamente.

In questo modo non hai bisogno di uno stupido override nel tuo css =)


0

Dovresti vedere quale classe sta aggiungendo il margine con firebug o uno strumento simile.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.