Απενεργοποίηση της αυτόματης μορφοποίησης στο WordPress

Απενεργοποίηση της αυτόματης μορφοποίησης στο WordPress

Μια από τις υπηρεσίες του WordPress είναι η αυτόματη μορφοποίηση των κειμένων που γράφουμε στον editor, συγκεκριμένα το WordPress προσθέτει αυτόματα το στοιχείο <p> στα κείμενα μας, αφαιρεί τα περιττά <br/> και αλλάζει αυτόματα τους ειδικούς χαρακτήρες.

Μπορεί η υπηρεσία αυτή να είναι πολύ χρήσιμη για την γρήγορη διαμόρφωση των κειμένων ή μπορεί να βοηθάει τον αρχάριο χρήστη στο να γράφει χωρίς να δημιουργεί προβλήματα στην μορφοποίηση αλλά υπάρχουν περιπτώσεις που η αυτόματη μορφοποίηση μπορεί να γίνει πολύ ενοχλητική και περιττή.

Συγκεκριμένα όταν θέλουμε να εισάγουμε ένα κομμάτι κώδικα στην ιστοσελίδα μας, όχι για να το εκτελέσουμε αλλά για το δείξουμε τότε η αυτόματη μορφοποίηση συνήθως εισάγει εξτρά στοιχεία ή αφαιρεί μερικά από τα υπάρχοντα με αποτέλεσμα να αλλοιώνει των κώδικα μας.

Η λύση στο παραπάνω πρόβλημα έρχεται με το παρακάτω απόσπασμα κώδικα και την βοήθεια των shortcodes του WordPress.

function my_formatter($content) {
	$new_content = '';
	$pattern_full = '{(\[raw\].*?\[/raw\])}is';
	$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
	$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

	foreach ($pieces as $piece) {
		if (preg_match($pattern_contents, $piece, $matches)) {
			$new_content .= $matches[1];
		} else {
			$new_content .= wptexturize(wpautop($piece));
		}
	}

	return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);

Συγκεκριμένα δημιουργούμε ένα shortcode που όταν το εφαρμόζουμε απενεργοποιούμε την αυτόματη μορφοποίηση στα περιεχόμενα του.  To μόνο που έχουμε να κάνουμε είναι να γράψουμε τον κώδικα μας μέσα σε ένα shortcode raw.

Προσθήκη σχολίου