Block „Individuelles HTML“ löscht Formatierungen selbstständig
-
Hallo allerseits,
ich nutze bei meiner Arbeit sehr gerne Bootstrap, da dieses sehr flexibel einsetzbar ist.
Ich nutze ein Child Theme von twentytwentyfive.
Bootstrap selbst habe ich über die functions.php eingebunden und die benötigten Dateien werden im Header bzw. im Footer geladen.
Ich habe auch bereits verschiedene Plugins zu Bootstrap getestet, aber bis auf eines, welches scheinbar nicht mehr weiter entwickelt wird und laut unterstützter WP Versionen nicht mit WP 7 kompatibel ist, kommt leider kein anderes in Frage.
Also dachte ich, ich füge meine Bootstrap Blöcke (Container, Row, Column etc) mit dem Block „individuelles HTML“ manuell ein um dann zwischen diesen Blöcken meine Inhalte in den Blöcken von WordPress zu platzieren.
Beispielhaft sieht das so aus:
Block individuelles HTML:<div class="container">
<div class="row">
<div class="col-md-3">Hier folgt zum Beispiel der Block „Bild“ um ein Bild in die Column einzufügen.
Und zum Schließen der Div´s wieder ein Block individuelles HTML mit folgendem Inhalt:</div> <!--schliessen div col-md-3-->
</div> <!--schliessen div row-->
</div> <!--schliessen div container-->Rein theoretisch sollte das doch so funktionieren, aber die Realitiät sieht leider etwas anders aus denn der Editor fügt nach dem Speichern automatisch HTML Code in den Abschnitten hinzu, bzw. leert Abschnitte, so dass diese zum Beispiel so aussehen:
<div class="container">
<div class="row">
<div class="col-md-3"></div></div></div>Ich denke, es ist jedem klar, dass das nicht funktionieren kann da die Div´s ohne Inhalte beendet werden.
Mache ich hier etwas falsch, habe ich vielleicht einen Denkfehler oder hat der Editor vielleicht einen Bug?
Oder sollte ich vielleicht vollkommen anders vorgehen?
Besten Dank für hilfreiche Antworten im voraus.
-
Bitte lies dir den oben angehefteten und gelb hinterlegten Beitrag
Bevor du ein neues Thema (Thread) erstellst
durch und poste die darin erwähnten, benötigten Informationen:

In meinem Test mit dem Theme 2025 funktioniert es einwandfrei:

daher sind die o. g. Informationen (wie eigentlich in jedem Fall) hilfreich, um die Ursache auf deiner Website zu untersuchen.
Hallo,
ja, Du hast recht damit, dass solche Infos sehr hilfreich sind.
Einen Link kann ich keinen zur Verfügung stellen da die Seite bei mir lokal unter MAMP Pro läuft.
PHP Version: 8.3.1
MySQL Version: 5.7.24
Zustandbericht:
wp-core
version: 7.0
site_language: de_DE
user_language: de_DE
timezone: Europe/Berlin
permalink: /%year%/%monthnum%/%day%/%postname%/
https_status: false
multisite: false
user_registration: 0
blog_public: 0
default_comment_status: open
environment_type: production
user_count: 1
dotorg_communication: true wp-paths-sizes
wordpress_path: D:\MAMP\htdocs\wp
wordpress_size: 72,52 MB (76037631 bytes)
uploads_path: D:\MAMP\htdocs\wp/wp-content/uploads
uploads_size: 9,32 MB (9777027 bytes)
themes_path: D:\MAMP\htdocs\wp/wp-content/themes
themes_size: 20,26 MB (21245598 bytes)
plugins_path: D:\MAMP\htdocs\wp/wp-content/plugins
plugins_size: 13,13 MB (13768709 bytes)
fonts_path: D:\MAMP\htdocs\wp/wp-content/uploads/fonts
fonts_size: directory not found
database_size: 3,17 MB (3325952 bytes)
total_size: 118,40 MB (124154917 bytes) wp-active-theme
name: Uwes Test (uwes-test)
version: undefined
author: Uwe Th
author_website: (undefined)
parent_theme: Twenty Twenty-Five (twentytwentyfive)
theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, widgets-block-editor, block-templates, post-formats, editor-style
theme_path: D:\MAMP\htdocs\wp/wp-content/themes/uwes-test
auto_update: Deaktiviert wp-parent-theme
name: Twenty Twenty-Five (twentytwentyfive)
version: 1.5
author: Das WordPress-Team
author_website: https://de.wordpress.org
theme_path: D:\MAMP\htdocs\wp/wp-content/themes/twentytwentyfive
auto_update: Deaktiviert wp-themes-inactive (3)
Twenty Twenty-Four: version: 1.5, author: Das WordPress-Team, Automatische Aktualisierungen deaktiviert
Twenty Twenty-Three: version: 1.6, author: Das WordPress-Team, Automatische Aktualisierungen deaktiviert
Twenty Twenty-Two: version: 2.1, author: Das WordPress-Team, Automatische Aktualisierungen deaktiviert wp-plugins-active (1)
Create Block Theme: version: 2.9.0, author: WordPress.org, Automatische Aktualisierungen deaktiviert wp-plugins-inactive (2)
Akismet Anti-spam: Spam Protection: version: 5.7, author: Automattic - Anti-spam Team, Automatische Aktualisierungen deaktiviert
Hello Dolly: version: 1.7.2, author: Matt Mullenweg, Automatische Aktualisierungen deaktiviert wp-media
image_editor: WP_Image_Editor_GD
imagick_module_version: 1808
imagemagick_version: ImageMagick 7.1.0-2 Q16 x64 2021-06-26 https://imagemagick.org
imagick_version: @PACKAGE_VERSION@
file_uploads: 1
post_max_size: 128M
upload_max_filesize: 64M
max_effective_size: 64 MB
max_file_uploads: 20
image_format_transforms: image/heic → image/jpeg, image/heif → image/jpeg, image/heic-sequence → image/jpeg, image/heif-sequence → image/jpeg
gd_version: bundled (2.1.0 compatible)
gd_formats: GIF, JPEG, PNG, WebP, BMP, AVIF, XPM
ghostscript_version: not available wp-server
server_architecture: Windows NT 10.0 AMD64
httpd_software: Apache/2.4.33 (Win64) OpenSSL/1.0.2u mod_fcgid/2.3.9
php_version: 8.3.1 64bit
php_sapi: cgi-fcgi
max_input_variables: 1000
time_limit: 60
memory_limit: 128M
admin_memory_limit: 256M
max_input_time: 60
upload_max_filesize: 64M
php_post_max_size: 128M
curl_version: 8.4.0 OpenSSL/3.0.12
suhosin: false
imagick_availability: true
opcode_cache: not available
pretty_permalinks: true
htaccess_extra_rules: false
static_robotstxt_file: false
current: 2026-06-10T10:29:17+00:00
utc-time: Wednesday, 10-Jun-26 10:29:17 UTC
server-time: 2026-06-10T12:29:15+02:00 wp-database
extension: mysqli
server_version: 5.7.24
client_version: mysqlnd 8.3.1
max_allowed_packet: 1048576
max_connections: 151 wp-constants
WP_HOME: undefined
WP_SITEURL: undefined
WP_CONTENT_DIR: D:\MAMP\htdocs\wp/wp-content
WP_PLUGIN_DIR: D:\MAMP\htdocs\wp/wp-content/plugins
WP_MEMORY_LIMIT: 40M
WP_MAX_MEMORY_LIMIT: 256M
WP_DEBUG: false
WP_DEBUG_DISPLAY: true
WP_DEBUG_LOG: false
SCRIPT_DEBUG: false
WP_CACHE: false
CONCATENATE_SCRIPTS: undefined
COMPRESS_SCRIPTS: undefined
COMPRESS_CSS: undefined
WP_ENVIRONMENT_TYPE: undefined
WP_DEVELOPMENT_MODE: undefined
DB_CHARSET: utf8mb4
DB_COLLATE: undefined
EMPTY_TRASH_DAYS: 30 wp-filesystem
wordpress: writable
wp-content: writable
uploads: writable
plugins: writable
themes: writable
fonts: does not existIch hatte den Code gerade nochmal aktualisiert und nach dem speichern sieht das Ganze dann wieder so aus, wie ersten Beitrag geschrieben.
Ich hoffe, die Infos helfen.Im Website-Zustandsbericht ist nichts gelistet, was ursächlich sein könnte.
1.) Das einzige, in Frage kommende, Element ist die functions.php des Child-Themes. Könntest du den Code davon eimal posten?
2.) Siehst du einen JavaScript-Fehler wenn du die „fehlerhafte“ Seite im Browser aufrufst und mit den Browser-Entwicker-Tools inspizierst?
Nachtrag:
3.) Wechsle zum Test auf das Parent-Theme 2025 (also nicht Child-Theme). Erstelle einen neuen Beitrag und füge dort noch einmal die HTML-Blöcke ein. Lösche Browser-Cache und teste.
-
Diese Antwort wurde vor 1 Monat, 1 Woche von
La Geek geändert.
Zu Punkt 1:
hier de Code aus der functions.php.
Das schließende PHP Tag ist nicht vorhanden.
So habe ich es bei dem Parent Theme gesehen und übernommen.<?php
function bootstrap_lokal_einbinden() {
// Bootstrap CSS einbinden
wp_enqueue_style( 'bootstrap-css', get_stylesheet_directory_uri() . '/bootstrap/css/bootstrap.min.css', array(), '5.3.8', 'all' );
// Bootstrap JS (Bundle enthält Popper) einbinden
wp_enqueue_script( 'bootstrap-js', get_stylesheet_directory_uri() . '/bootstrap/js/bootstrap.bundle.min.js', array('jquery'), '5.3.8', true );
}
add_action( 'wp_enqueue_scripts', 'bootstrap_lokal_einbinden' );
//My Styles einbinden
function my_styles() {
wp_enqueue_style('my-style', get_stylesheet_directory_uri() . '/style.css' , array(), '1.0.0', 'all' );
}
add_action('wp_enqueue_scripts', 'my_styles');
Zu Punkt 2:
Es wird in den Entwicklertools kein Fehler ausgegebenZu Punkt 3:
Ich habe das Theme gewechselt und auch dort passiert der gleiche Fehler.Das passiert nicht beim Erstellen eines Beitrags, sondern ich bin dabei, das Template „Seiten“ zu bearbeiten, was aber vom Prinzip her keinen Unterschied machen sollte da die Tools im Editor die gleichen sind oder irre ich da?
Im Screenshot ist die Struktur im Editor zu sehen und der Code.

Was ich auch noch festgestellt habe – verschiebe ich den Block innerhalb der Struktur, verändert der Editor den Code ebenfalls eigenständig, siehe Screenshot.
Und das gleiche passiert einfach so zwischendurch beim Speichern einer Änderung, auch dann wenn ich einen anderen Block hinzufüge oder innerhalb der Struktur verschiebe.
Könnte es eventuell damit zusammenhängen dass ich auf meinem Localhost keine SSL Verschlüsselung aktiviert habe?
Ich habe MAMP so konfiguriert, dass auf den Host via http Vollzugriff erlaubt ist.Ich bin mit meinem Latein am Ende ¯\_(ツ)_/¯
Und was heißt das nun im Klartext?
Denkst du, es könnte ein Systemfehler sein oder sitzt der Fehler, wie so oft, vor dem Bildschirm?
Im Nachhinein überlegt, liegt es vermutlich nicht daran, dass kein SSL aktiv ist, da alle anderen Änderungen übernommen werden.
Gib es eine Bugbase, wo ich den Fehler melden kann oder geschieht das durch das Supportforum?Laut meiner Recherche kannst du noch Folgendes versuchen:
1. Schau in die wp-config.php ob dort folgender Eintrag exisitiert
define( 'DISALLOW_UNFILTERED_HTML', true );falls ja, ersetze
truedurchfalse2. Anderer Test:
Erstelle einen einzigen HTML-Block. Füge das komplette Konstrukt dort hinein
</div> <!--schliessen div col-md-3--> </div> <!--schliessen div row--> </div> <!--schliessen div container--> Test </div> <!--schliessen div col-md-3--> </div> <!--schliessen div row--> </div> <!--schliessen div container-->und sieh nach ob Test angezeigt wird.
Zur Frage, ob das fehlende SSL ursächlich sein könnte, habe ich Folgendes gefunden (ohne Gewähr)
Der Browser blockiert die REST-API wegen fehlendem SSL (Mixed Content / Cookies)
Der WordPress-Block-Editor (Gutenberg) kommuniziert beim Speichern und Rendern permanent im Hintergrund über die WordPress-REST-API (wp-json).
- Das Problem: Moderne Browser (vor allem Chrome, Edge und Safari) blockieren oder beschränken Anfragen über http://localhost (ohne SSL) extrem streng, wenn es um das Senden von Code-Fragmenten geht.
- Wenn der User ohne SSL eingeloggt ist, verliert der Browser bei REST-API-Aufrufen im Hintergrund manchmal die Session-Cookies (Stichwort: SameSite Cookie Policies). WordPress stuft den User bei der Anfrage dann plötzlich nicht mehr als Admin ein.
- Die Folge: Ohne Admin-Rechte in der REST-API filtert WordPress das HTML beim Speichern sofort und schließt das offene <div> im ersten Block automatisch.
MAMP bringt eigene PHP-Voreinstellungen mit, die sich drastisch von professionellen Live-Servern unterscheiden:
- libxml / tidy Erweiterung: Auf Live-Servern sind diese Bibliotheken oft so konfiguriert, dass sie fehlerhaftes HTML ignorieren. MAMP hat oft striktere Standardwerte aktiv. Wenn der lokale MAMP-Server das unvollständige HTML parst, repariert die lokale PHP-Umgebung den Code eigenmächtig, bevor er überhaupt in die lokale Datenbank geschrieben wird.
- PHP-Memory-Limit / Timeouts: Wenn MAMP lokal ausgelastet ist, brechen die Hintergrund-Skripte des Editors beim Validieren von Blöcken ab, was zu fehlerhaften Block-Zuständen führt.
Problem auf der MAMP-Installation beheben:
- In den MAMP-Einstellungen unter „Hosts“ auf den Reiter SSL klicken, das Häkchen bei „SSL“ setzen und ein selbstsigniertes Zertifikat erstellen lassen. Danach die Website über https://localhost aufrufen.
Jetzt noch einmal alles in einen einzigen HTML-Block und testen.
Danke für deine Hinweise. Ich weiß dass man bei MAMP ein self signed Zertifikat erstellen kann. das Problem ist, dass ein moderner Browser das selbst erstellte Zertifikat als unsicher erkennt und die Seite trotzdem als potentiell gefährlich einstuft. Let´s Encrypt bietet bei all-inkl kostenlose SSL Zertifikate an. Ich schaue mal, ob man die auch auf deren Website erhalten kann. Ich habe ein self signed Zertifikat eingebunden, aber es brachte keine Verbesserung. Dafür bin ich aber, so glaube ich zumindest, fündig geworden.
Ich habe mir das Ganze nochmal etwas näher angeschaut und es sieht so aus, als ob der Editor, sobald er einen Fehler im Code oder unvollständigen Code „entdeckt“, diesen automatisch beim Zwischenspeichern durch hinzufügen oder entfernen von Code, korrigiert.Wie ich darauf gekommen bin?
Ich habe nun die gesamte Struktur nachgearbeitet. Es sind mehrere Blöcke, um genau zu sein 7, mit individuellem HTML Code vorhanden. Nachdem ich nun alle Blöcke ohne Zwischenspeichern des Templates nachgearbeitet und diese zuerst in der gesamten Struktur vervollständigt habe, wird der Code nicht mehr eigenständig durch den Editor verändert.
Darauf muss man aber erstmal kommen.Zum Testen ob mein Vorhaben überhaupt klappen könnte, habe ich das lediglich an einem Objekt ausprobiert und dabei trat natürlich dann der vermeintliche Fehler auf.
Ich lasse den Thread mal geöffnet falls es sich doch noch anders abzeichnen sollte.
Ich bedanke mich für deine Hilfe.
Nachdem ich nun alle Blöcke ohne Zwischenspeichern des Templates
Ah, das ist neu/eine neue Information = Template
Ich hatte alles (HTML-Blöcke) im Block-Editor innerhalb eines Beitrags eingefügt.
Ich arbeite nie mit dem Block-Editor und mit FSE, aber ich vermute, innerhalb von FSE-Templates funktioniert es dann wohl nicht.
Obwohl TwentyTwenty-Five als reines Block-Theme (FSE) keine klassischen PHP-Theme-Hooks mehr bietet, kann man trotzdem noch auf die globalen WordPress-Aktions-Hooks zurückgreifen.
Dieser Code sollte eigentlich funktionieren (function.php)
function tt5_oeffnende_divs_einfuegen() { echo '<div class="container"> <div class="row"> <div class="col-md-3">'; } add_action( 'wp_body_open', 'tt5_oeffnende_divs_einfuegen', 10 ); function tt5_schliessende_divs_einfuegen() { echo '</div> <!--schliessen div col-md-3--> </div> <!--schliessen div row--> </div> <!--schliessen div container-->'; } add_action( 'wp_footer', 'tt5_schliessende_divs_einfuegen', 99 );Aber Achtung! Der Code wirkt auf allen Seiten. Wenn du das eingrenzen willst, musst du entsprechende Conditions ggf. mit IDs davor setzen, siehe: https://codex.wordpress.org/Conditional_Tags
Zum Beispiel, der Code soll nur auf Archiven und auf der Seite mit ID 365 greifen:
function tt5_oeffnende_divs_einfuegen() { if ( is_archive() || is_page( 365 ) ) { echo '<div class="container"> <div class="row"> <div class="col-md-3">'; } } add_action( 'wp_body_open', 'tt5_oeffnende_divs_einfuegen', 10 ); function tt5_schliessende_divs_einfuegen() { if ( is_archive() || is_page( 365 ) ) { echo '</div> <!--schliessen div col-md-3--> </div> <!--schliessen div row--> </div> <!--schliessen div container-->'; } } add_action( 'wp_footer', 'tt5_schliessende_divs_einfuegen', 99 );Danke dir für die Hinweise und die Lösungsansätze. Ich werde das die Tage umsetzen und mir das Ergebnis anschauen.
Eigentlich bin ich auch eher jemand, der seinen Code selbst schreibt, da ich aber, was WordPress betrifft noch in den Anfängen stecke, kam mir der Blockeditor gelegen.
Wenn diese Struktur auf mehreren Seiten angezeigt werden soll – kann ich dann die ID’s der Seiten durch Komma oder Semikolon getrennt in der Kammer angeben oder muss ich jede ID mittels
is_page(ID)deklarieren?Da der Editor bei Beiträgen und Template der gleiche ist, war ich der Ansicht, dass das funktionieren sollte.
Ich hatte nachträglich noch den Link zu den Conditional-Tags von WordPrees oben eingefügt. Dieser Codex-Artikel sollte diesbzgl. alle Fragen beantworten. Ich freu mich auf deine Rückmeldung, ob es geklappt hat.
Ich habe es jetzt auch einmal im FSE ausprobiert, statt im Block-Editor:
Also, im FSE, Template, klappt es, wenn man die HTML-Blöcke vor den Header und nach dem Footer setzt. Ich hatte sie zuerst innerhalb des Konstruktes, was nicht funktionierte.
Nachtrag:
Siehe https://de.wordpress.org/support/topic/block-individuelles-html-loescht-formatierungen-selbststaendig/page/2/#post-176614-
Diese Antwort wurde vor 1 Monat, 1 Woche von
La Geek geändert.
-
Diese Antwort wurde vor 1 Monat, 1 Woche von
Du musst angemeldet sein, um auf dieses Thema zu antworten.