Antworten:
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öchten preg_replace
, liegt es an Ihnen ...
Eine sehr, sehr, sehr schmutzige Lösung wäre:
/* Insert tracking code or other stuff directly after BODY opens */
add_filter('body_class', 'wps_add_tracking_body', PHP_INT_MAX); // make sure, that's the last filter in the queue
function wps_add_tracking_body($classes) {
// close <body> tag, insert stuff, open some other tag with senseless variable
$classes[] = '"><script> /* do whatever */ </script><noscript></noscript novar="';
return $classes;
}
Fügen Sie diesen Code in functions.php hinzu
function my_function() {
echo'<div id="from_my_function"></div>';
}
add_action('wp_head', 'my_function');
<head>
nicht ausgegeben <body>
.