Szukałem wysoko i nisko w poszukiwaniu prostego rozwiązania tego problemu, ale bezskutecznie. Wordpress ciągle owija moje obrazy w tagi p, a ze względu na ekscentryczny charakter strony, nad którą pracuję, jest to bardzo denerwujące.
Stworzyłem rozwiązanie jQuery do rozpakowywania obrazów, ale nie jest tak świetne. Opóźnia się z powodu innych ładowań na stronie, więc zmiany są powolne. Czy istnieje sposób, aby zapobiec zawijaniu przez Wordpress tylko obrazów ze znacznikami p? Być może można uruchomić hak lub filtr.
Dzieje się tak podczas przesyłania obrazu, a następnie wstawiania go do edytora WYSIWYG. Ręczne wchodzenie do widoku kodu i usuwanie znaczników p nie jest opcją, ponieważ klient nie jest tak technicznie nieudolny.
Rozumiem, że obrazy są wbudowane, ale sposób, w jaki mam strony kodowane obrazy są wewnątrz div i ustawione na blokowanie, więc są poprawnym kodem.
Odpowiedzi:
oto co zrobiliśmy wczoraj na stronie klienta, z którą mieliśmy dokładnie ten problem ... Stworzyłem szybki filtr jako wtyczkę i aktywowałem go.
Jeśli upuścisz go do pliku php w folderze / wp-content / plugins, a następnie go aktywujesz, powinien on usunąć tagi p z dowolnego para, który zawiera tylko obraz.
Nie jestem pewien, jak silne jest wyrażenie regularne pod względem tego, czy zakończy się niepowodzeniem w przypadku danych wyjściowych innych edytorów - na przykład, jeśli tag img jest zamknięty tylko przez>, to się nie powiedzie. Jeśli ktoś ma coś silniejszego, byłoby to naprawdę pomocne.
Twoje zdrowie,
James
--- Ulepszony filtr ---
Aby pracować z obrazami owiniętymi w łącza, utrzymuje łącza w danych wyjściowych i usuwa znaczniki p.
źródło
img
znacznikiem HTML5 , tj.<img ...>
Bez ukośnika zamykającego. Lepiej uczynić to opcjonalnym w wyrażeniu regularnym. Lub jeszcze lepiej, możesz to pominąć, jak się.*
tym zajmie.<img ...>
bez niego/>
?Zasadniczo musisz sprawić, aby WordPress traktował img jak element na poziomie bloku do celów formatowania. Takie elementy są zakodowane na stałe,
wpautop()
a lista niestety nie jest filtrowana.Chciałbym:
wpautop()
pod inną nazwą.img
do wyrażenia regularnego w$allblocks
zmiennej.wpautop
zthe_content
filtra.the_content
.źródło
może to pomoże
Ale potem ręcznie dodasz akapity dotyczące wszystkiego innego.
źródło
Soska dała jeden / łatwy sposób.
Ale to, co robię, to wydobywanie obrazu z treści i wyświetlanie go osobno.
źródło
Ten post jest trochę stary, ale istnieje o wiele prostsze rozwiązanie, z wyjątkiem CSS po twojej stronie.
Zawijanie znacznika img w div ma niewielki negatywny wpływ.
źródło
Opracowałem wtyczkę, która rozwiązała ten dokładny problem: http://wordpress.org/extend/plugins/unwrap-images/
To lepsze niż ustawianie marginesu lub nurkowanie bezpośrednio w kodzie Wordpress dla tych, którzy nie chcą zadzierać z kodem, ponieważ używa natywnej funkcji rozpakowywania jQuery do rozpakowywania wszystkich obrazów swoich znaczników p.
Mam nadzieję, że to komuś pomoże! Na zdrowie, Brian
źródło
Zaakceptowana odpowiedź pomogła mi tylko z obrazami, ale poprawiony kod nie radzi sobie dobrze z połączonymi obrazami w mojej witrynie. To post na blogu ma kod, który działa idealnie.
Oto kod:
Twoje zdrowie!
źródło
Nie jestem ekspertem, ale spędziłem całe popołudnie, próbując rozwiązać de img zawinięte w tagi p i to zadziałało dla mnie.
Pracuję nad kompozycją opartą na wordpressie i właśnie dodałem ją do pliku functions.js
Funkcja Jquery rozpakowuje się
teraz mogę pracować p i img osobno.
Można również dodać div z inną klasą wokół img, używając tego:
ten ostatni nie rozwiązał mojego problemu, ponieważ chciałem utworzyć tagi p z display: none; więc naprawdę musiałem je stamtąd usunąć.
źródło
W zależności od postu innym rozwiązaniem może być użycie wtyczki WP Unformatted w celu wyłączenia funkcji auto-p dla poszczególnych postów.
źródło
Jeśli ktoś szuka szybkiego i brudnego sposobu na naprawienie tego dla dowolnego tagu, oto co zrobiłem:
$allblocks = '(?:table|thead|tfoot|capti...
img
,a
itp ... Na przykład jeśli kończy się na(...)menu|summary)';
zmianę do(...)menu|summary|a)';
Aby dodaća
tag i uniknąć autopeeing go. Zwróć uwagę na|
separator potokowy - to składnia wyrażeń regularnych !To wszystko, szczęśliwy Wordpressing!
źródło