Allgemein, Blog, WordPress

WordPress wpautop mittels „Benutzerdefinierter Felder“ aktivieren bzw. deaktivieren

WordPress Entwickler und Webdesigner

Wer WordPress verwendet und in Artikeln oder Seiten teilweise viel eigenen HTML Code verwendet, dürfte das Problem kennen. WordPress legt manchmal P-Tags um Code Passagen bei denen es einfach nur sinnlos ist und HTML-Fehler verursacht. Dies liegt an der Funktion wpautop, die dafür da ist automatisch P-Tags um Absätze zu legen.

Ich selber habe dieses Problem zum Beispiel immer bei den Vimeo Codes auf dieser Webseite. Um dieses Problem zu umgehen habe ich mir eine kleine aber feine Lösung überlegt. Ich deaktiviere die wpautop Funktion (bzw. entferne den Filter von the_content). Dies macht bei mir Sinn, da ich den meisten HTML-Code selber schreibe und die P-Tags nicht gebrauchen kann.

Wenn ich sie wieder erwarten doch einmal in einem Artikel verwenden möchte, so kann ich sie über die „Benutzerdefinierten Felder“ wieder aktivieren. Diese Möglichkeit ist sehr komfortabel und ermöglicht mir eine weitere Verwendung der Funktion ohne diese komplett abzuschalten.

Anzeige:




Als erstes kommt der Part in dem wir die Funktion wpautop komplett entfernen, sämtlichen Code schreiben wir in die „functions.php“ eures Templates, sollte diese noch nicht existieren so legt diese Datei im Template Ordner an:

remove_filter('the_content', 'wpautop');

Mit diesem Code entfernen wir die wpautop Funktion von der the_content() Ausgabe. Mit dieser Zeile wäre wpautop erst einmal komplett deaktiviert. Da wir es später aber über die „Benutzerdefinierten Felder“ wieder aktivieren möchten, schreibt ihr noch folgenden Code darunter:

Du möchtest noch mehr über WordPress erfahren und lernen? Dann schau dir doch einmal mein achtstündiges WordPress-Video-Training an. Es behandelt die verschiedensten Themen rund um WordPress praxisnah und gut verständlich, wie z.B. Theme-Erstellung, MultiSite / Blognetzwerk, eigene Plugins, Custom-Post-Types, Suchmaschinenoptimierung und vieles mehr: WordPress-Video-Training von Pascal Bajorat

function set_wpautop($content){
	// $post Variable in der Funktion verfügbar machen
	global $post;
	// In die Variable $wpautop wird das "Benutzerdefinierte Feld" mit dem Namen "wpautop" geladen
	$wpautop = get_post_meta($post->ID, 'wpautop', true);
	// Wenn in dem "Benutzerdefinierten Feld" wpautop der Wert "yes" gesetzt wurde,
	// dann wird...
	if($wpautop=='yes'){
		// Die Content Variable mit wpautop Funktion zurückgegeben
		return(wpautop($content));
	}else{
		// oder nur die Content-Variable ohne wpautop Funktion
		return($content);
	}
}
// Der Filter set_wpautop wird auf the_content angewendet.
add_filter('the_content', 'set_wpautop');

Bei mir hat sich diese Variante bewährt und erleichtert mir das Arbeiten ungemein. Vielleicht hilft diese Funktion ja auch dem einen oder anderen von euch.

Viel Spaß damit.

Schlagworte zu diesem Artikel: , , , ,

Veröffentlicht von Pascal Bajorat

Pascal Bajorat ist Mediengestalter und arbeitet als Webdesigner / Webentwickler, Autor und Trainer in Berlin. In den vergangenen Jahren hat er sich vor allem auf das CMS WordPress und die Entwicklung von hochwertigen Webseiten und Sonderlösungen spezialisiert. Er hat den Webdesign-Podcast.de 2010 gegründet.

Webseite:

4 Antworten zu “WordPress wpautop mittels „Benutzerdefinierter Felder“ aktivieren bzw. deaktivieren”

  1. Super Beschreibung und gut erklärt, funktioniert einwandfrei. Habe mir die Finger blutig gegooglet nach einer individuellen Lösung für die wpautop-Funktion.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Der Benachrichtigungs-Dienst wird von WordPress.com (Automattic Inc., USA ) bereitgestellt. Mit der Anmeldung akzeptierst du die Datenschutzerklärung. Die Abmeldung / Abo-Verwaltung ist jederzeit über diesen Link möglich.