Jak usunąć znaczniki paragrafów z obrazów w treści wpisu?

Standardowo jeśli dodajesz obraz do treści wpisu lub strony, WordPress umieści ten obraz pomiędzy znacznikami <p>, odpowiadającymi za tworzenie paragrafów. Zazwyczaj jest to niepotrzebne, nadmiarowe dodawanie kodu html, a czasami stwarza dodatkowe problemy.

Przykładowo na jednej ze stron klient życzył sobie mieć linki w treści wpisów o unikalnym wyglądzie. Wygląd ten uzyskałem dzięki zastosowaniu pseudoklasy ::after do wszystkich linków wewnątrz paragrafu. Niestety w przypadku dodawaniu obrazu do treści, obraz może być również linkiem, dlatego moje style miały zastosowanie również w tym przypadku (ponieważ link z obrazem znajdował się pomiędzy znacznikami paragrafu).

Na ten problem możemy posłużyć się prostym filtrem, który usunie paragrafy otaczające obrazy w treści wpisu. Otwieramy plik functions.php i dodajemy następujący kod:

function remove_ptags_on_images($content){
 return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
add_filter('the_content', 'remove_ptags_on_images');

Dzięki temu, znaczniki <p> zostaną usunięte z wszystkich obrazów w treści wpisu lub strony. Warto dodać, że ten problem nie występuje, jeśli używasz nowego edytora wpisów Gutenberg, jednak z tego co widzę dużo użytkowników korzysta nadal z klasycznego edytora (wtyczka Classic Editor posiada ponad 5 milionów aktywnych instalacji)

Tagi artykułu:

×

Interesujesz się WordPressem?

Polub nas na Facebooku, będziesz na bieżąco!

facebook