Warum erstellt wp_head () einen oberen Rand oben in meinem Themenkopf?

8

Ich erstelle ein benutzerdefiniertes Thema, und Elemente verhalten sich so, wie sie sollten, aber wenn ich das <?php wp_head() ?>Tag platziere, wird oben in meiner Themenüberschrift ein oberer Rand angezeigt.

Wenn ich das entferne, verschwindet <?php wp_head(); ?>der Rand. Ich bin schon eine Weile dabei, jede Hilfe wäre großartig.

Tankerei
quelle
1
Etwas, das sich in wp_head einhakt, gibt Speicherplatz aus, bevor HTML ausgegeben wird?
Milo

Antworten:

10

Schwer zu sehen, ohne es anzusehen, aber eine fundierte Vermutung:

Höchstwahrscheinlich ist es das CSS für die Admin-Leiste, das nur angezeigt wird, wenn Sie angemeldet sind. Es enthält das CSS dafür <?php wp_head() ?>und <?php wp_footer(); ?>das HTML für die Admin-Leiste.

Wenn Sie schauen, sollte es tatsächlich ein Rand oben sein, der dem HTML-Tag hinzugefügt wird.

Ryan Gibbons
quelle
stimmte zu, sah dieses Problem ein paar Mal
MartinJJ
1
Ja, ich habe mehreren Leuten geholfen und das gesehen. Ich denke, das größte Problem sind die Leute, die wp_footer () nicht in die Vorlage aufnehmen
Ryan Gibbons
An das OP - Ich denke, Sie sollten diese Antwort akzeptieren.
Greeso
2

Wenn Sie versuchen, die Admin-Leiste durch Einhängen in den show_admin_barFilter auszublenden , dies jedoch zu spät tun ( initwobei die Standardpriorität beispielsweise zu spät ist), erhalten Sie einen zusätzlichen oberen Rand von 28 Pixel, jedoch keine Admin-Leiste.

Jan Fabry
quelle
1

Dies ist auch bei mir passiert. Dieser Bereich ist für die Admin-Leiste oben in Ihrem Thema vorgesehen, die einem angemeldeten Benutzer angezeigt wird.

Wenn Sie sich in demselben Browser, in dem Sie das benutzerdefinierte Design verwenden, bei Ihrem WordPress-Dashboard angemeldet haben, liegt das Problem vor.

Melden Sie sich einfach vom WordPress-Administratorkonto ab und öffnen Sie Ihr benutzerdefiniertes Thema erneut.

viv
quelle
1

Ich bin auch auf das gleiche Problem gestoßen und habe es gelöst, indem ich Folgendes hinzugefügt habe:

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

Fügen Sie oben in die CSS-Datei Ihres Themas ein.

Rhoi
quelle
2
Diese Antwort funktioniert nicht, weil die 28px inline hinzugefügt wird, die Vorrang vor allem in einer CSS-Datei hat
1

Das Hinzufügen von "margin-top: 0px! wichtig" am Anfang Ihrer CSS-Datei funktioniert tatsächlich, aber NUR, wenn Sie Ihre Header-Informationen neu anordnen, um die CSS-Datei aufzurufen, nachdem wp_head aufgerufen wurde.

Das niedrigste CSS-Attribut wird in 100% der Fälle angewendet.

Daniel
quelle
"Das niedrigste CSS-Attribut wird in 100% der Fälle angewendet." - Nicht unbedingt, hängt von der Spezifität anderer vorhandener Selektoren ab. ZB. #content div.somedivhat immer Vorrang vor dem, div.somedivwo letzteres definiert ist.
t31os
1

Der Randstilblock wird von der _admin_bar_bump_cbFunktion ausgegeben, die für die wp_headAktion ausgeführt wird. Sie können die Aktion entfernen, indem Sie Folgendes aufrufen:

remove_action('wp_head', '_admin_bar_bump_cb');

Ich habe es in meinen Funktions-Hook für Enqueue-Skripte eingefügt und es hat die Ausgabe am oberen Rand erfolgreich entfernt, aber ich bin sicher, Sie könnten es irgendwo in der functions.php platzieren und es richtig funktionieren lassen.

Auf diese Weise brauchen Sie keine dumme Überschreibung in Ihrem CSS =)

Anthony Brown
quelle
0

Sie sollten sehen, welche Klasse den Rand mit Firebug oder einem ähnlichen Tool hinzufügt.

MZAweb
quelle
-1

Versuche dies,

html { margin-top:0px; padding-top:0px; }
Pro Wordpress-Entwicklung
quelle