Ich verwende das Wordpress-Thema Twenty Twelve (genauer gesagt ein Kind davon).
Ich möchte wissen, wie man HTML direkt nach dem Öffnen des Körpers in nur functions.php einfügt und nicht header.php verwendet.
Ist das möglich?
quelle
Ich verwende das Wordpress-Thema Twenty Twelve (genauer gesagt ein Kind davon).
Ich möchte wissen, wie man HTML direkt nach dem Öffnen des Körpers in nur functions.php einfügt und nicht header.php verwendet.
Ist das möglich?
Twenty Twelve hat keine Haken, die unmittelbar nach dem Eröffnungs- <body>
Tag ausgelöst werden.
Kopieren Sie daher in Ihrem untergeordneten Thema, das das übergeordnete Thema Zwanzig erweitert, das header.php
Over in Ihr untergeordnetes Themenverzeichnis.
Öffnen Sie die header.php
Datei in Ihrem untergeordneten Thema und fügen Sie direkt nach dem öffnenden Body-Tag einen Aktions-Hook hinzu, an den Sie sich dann über Ihre functions.php
Datei anschließen können.
Zum Beispiel in Ihrer twenty-twelve-child/header.php
Datei:
<body <?php body_class(); ?>>
<?php do_action('after_body_open_tag'); ?>
Dann in Ihrer twenty-twelve-child/functions.php
Datei:
function custom_content_after_body_open_tag() {
?>
<div>My Custom Content</div>
<?php
}
add_action('after_body_open_tag', 'custom_content_after_body_open_tag');
Dies wird dann in Ihrem HTML wie folgt gerendert:
<body>
<div>My Custom Content</div>
Literatur-Empfehlungen:
https://developer.wordpress.org/reference/functions/do_action/
Wie von Junaid Bhura aus WordPress 5.2 kommentiert, wurde eine neue Themen- Hilfsfunktionwp_body_open
eingeführt, die für die Verwendung wie andere Hilfsfunktionen wp_head
und vorgesehen ist wp_footer
.
Zum Beispiel:
<html>
<head>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<!-- BODY CONTENT HERE -->
<?php wp_footer(); ?>
</body>
</html>
In Ihrer Theme functions.php Datei (oder passend woanders)
function custom_content_after_body_open_tag() {
?>
<div>My Custom Content</div>
<?php
}
add_action('wp_body_open', 'custom_content_after_body_open_tag');
Sie sollten sicherstellen, dass der Hook innerhalb des Themas vorhanden ist, in das Sie einfügen möchten, da dies von der Community möglicherweise noch nicht weit verbreitet ist.
Wenn NICHT , müssen Sie weiterhin dem Prinzip folgen, das Thema um ein untergeordnetes Thema zu erweitern, mit der Ausnahme, dass SIE Folgendes verwenden würden:
<?php wp_body_open(); ?>
... anstelle von ODER zusätzlich zu:
<?php do_action('after_body_open_tag'); ?>
Literatur-Empfehlungen:
https://developer.wordpress.org/reference/functions/wp_body_open/
template_include
oder ähnliches anschließen, jedoch dringend davon abgeraten werden, da dies nicht nur ineffizient ist, sondern auch sehr unzuverlässig sein kann, wenn sich aufgrund einer Aktualisierung etwas im übergeordneten Element ändert. Das Erweitern des übergeordneten Themas mithilfe eines untergeordneten Themas ist die beste Vorgehensweise. Es ist vorhersehbar und wird erwartet. Außerdem erhalten Sie viel Kontrolle, z. B. anhand des oben gezeigten Beispiels. Wenn Sie jedoch verwenden möchtenpreg_replace
, liegt es an Ihnen ...Eine sehr, sehr, sehr schmutzige Lösung wäre:
quelle
Fügen Sie diesen Code in functions.php hinzu
quelle
<head>
nicht ausgegeben<body>
.