29 listopada 2016

Piękne wypisy dla WordPressa


o pracyo wszystkim

Czas na kategorię dev! Tego się nie spodziewaliście, prawda? Ja w sumie też nie. Wczoraj dostałam pytanie o to, jak działają Przeczytane Książki u mnie na blogu, a dziś „w pracy” zrobiłam tak piękny kawałek kodu, że muszę się nim pochwalić. Kod do książek zamknę we wtyczce kiedyś, spokojnie.

Dajcie znać, jak będziecie mieć dość, ale i tak to zostanie. Czas pokazać trochę więcej z kategorii „geek”.

Wyobraźcie sobie, że wchodzicie na bloga. Witają Was tam kafelki. Pod tytułem widzicie kawałek tekstu, który zazwyczaj kończy się trzema kropkami, chyba, że ktoś tego pilnuje, chociaż i wtedy te teksty mają bardzo różną długość.

Kod, który widzicie poniżej, powinien trochę z tym pomóc. A co on robi? W zdefiniowanym przez Was limicie znaków szuka pełnych zdań, a konkretnie ostatniego pełnego i dopiero po nim ucina tekst. Nie ma więc już wielokropków i myśli urwanych w połowie.

Ta-da!

Oczywiście, może się tak zdarzyć, że jednak nie spotkamy w tym kawałku końca zdania, bo myśl kończy się dwukropkiem, po którym jest lista albo filmik, albo dowolna wklejka, wtedy więc wielokropek jednak musi wskoczyć na swoje miejsce. Ale to nie zdarza się za często (no chyba, że ustawicie limit znaków na 20).

Kodu możecie używać do woli. Smacznego!

Jeśli tekst Ci się spodobał, kliknij serduszko poniżej.

Dodaj komentarz

Komentarzy: 16

Yzoya, a co myślisz o tym? Wiesz ja jestem total amator i miałem się do Ciebie zgłosić po pomoc w najbliższym czasie… w każdym razie Twój kod nie działał jak chciałem, więc napisałem sobie nowy ;-)

function perfect_excerpt() {
global $post;
$p_excerpt = get_the_excerpt($post->ID);
$p_lenght_1 = strrpos($p_excerpt, ‚.’, -3);
$p_lenght_2 = strrpos($p_excerpt, ‚?’, -3);
$p_lenght_3 = strrpos($p_excerpt, ‚!’, -3);
$p_lenght = max($p_lenght_1,$p_lenght_2,$p_lenght_3);

return substr($p_excerpt, 0 , $p_lenght+1);

}

Da się to uprościć? Bo dzięki temu obcina mi tak jak powinno. Co do długości to można zastosować fabryczny filtr WordPressa.

Yzoja napisał(a):

No tak, bo jak masz filtr na ilość wyrazów, albo wychodzi ponad domyślne 55, to nadal będzie ucinał (+ obcina w miejscu, gdzie jest dodany znacznik !– more –).

Mi był potrzebny taki akurat, ze zmienną liczbą znaków – bo czasem potrzebuję dosłownie jedno zdanie, a czasem najlepiej jakby było z pięć ;) w obrębie jednego szablonu.

Mi się to kłóciło z dwoma funkcjami, które miałam – zmiana […] na zwykłe … na końcu + ograniczenie do 20 słów domyślnych excerptów.

Ciekawa koncepcja z tym max(), totalnie nie pomyślałam. Z drugiej strony – przy moim sprawdza ? i ! dopiero jak nie ma kropek.

Koleś też fajnie skomentował ten mój kawałek kodu, z wersją, która przejdzie nawet w motywach na wordpress.org
https://gist.github.com/Yzoja/4ad7953b87c7b69fdadecef1a2f953c3#gistcomment-1934582

warto było napisać ten kawałek kodu, żeby ludzi trochę rozruszać i znaleźć jeszcze lepsze i ładniejsze rozwiązania ;)

Nie wiem na ile to ważne, ale wg mnie (jak mówiłem początkujący jestem), to w moim kodzie masz strrpos() z ostatnim parametrem na „-„, co ma znaczyć, że szuka od tyłu, bo przecież tam szukamy znaków kończących. A pomysł @zaniczka:disqus z wtyczką nie jest zły ;-)

Yzoja napisał(a):

mój kod szuka ostatnich znaków, żeby było jedno zdanie, albo więcej. Ja na PHPie się szczerze nie znam za dobrze – kod działa tak, jak potrzebuję i to mi wystarczy.

xpil napisał(a):

„Piszę w dotnecie już trzecie stulecie, bo kto się w pehapie połapie…”

Yzoja napisał(a):

No właśnie, tzn, wiesz, ja tu jestem królowa CSSa, a nie jakieś pehapy. :D

Yzoja napisał(a):

a wtyczka ma być do książek, nie do tego

Zaniczka napisał(a):

Yzoja, ale Ty jesteś zdolna ;) rób ta wtyczkę rób :)

marsjaninzmarsa napisał(a):

Moje modły wreszcie zostały wysłuchane, Yzoja wróciła! 😉

Yzoja napisał(a):

yay!

Ale piękny kod! Zabrałem się za tworzenie własnego motywu WP i to bardzo mi się przyda ;-) zresztą na MGB będę się nim chwalił w nie długim czasie.

Yzoja napisał(a):

Pięknie! :D Fajnie, że się przyda!

xpil napisał(a):

No no, bardzo ładnie. U mnie są Pchełki, ale w pehapie to ja nie gawariu. Jeśli o mnie chodzi to możesz wrzucać tu tyle snippetów ile wlezie.

Yzoja napisał(a):

Pchełki? :D

No u mnie z tym PHPem to jest wiesz. Jak muszę to wejdę w dokumentację i ogarnę, to co potrzebuję na potrzeby WordPressa, ale żeby coś więcej to… mam backendowca w domu, który robi te większe rzeczy :D

xpil napisał(a):

Nie znasz Pchełek? Zapraszam w wolnej chwili w takim razie: https://xpil.eu/k/pchelki-2/

Yzoja napisał(a):

O, czarna magia :D

Najbardziej lubiane

4 lata temu

Horrory, które warto obejrzeć (i parę tych, które odradzam)

Lecimy z horrorami.

przeczytaj »
1 rok temu

Bullet Journal – podstawy

Bullet Journal to system produktywności stworzony przez Rydera Carrolla, projektanta z Nowego Jorku,...

przeczytaj »
3 lata temu

15 mało znanych filmów, które warto obejrzeć

Uwielbiacie wpisy o filmach, prawda?

przeczytaj »
12 miesięcy temu

Harry

Ten tekst nie będzie się klikał, nie będziecie go udostępniać, ani przesadnie lajkować.

przeczytaj »

Najczęściej udostępniane

4 lata temu

Horrory, które warto obejrzeć (i parę tych, które odradzam)

Lecimy z horrorami.

przeczytaj »
1 rok temu

Bullet Journal – podstawy

Bullet Journal to system produktywności stworzony przez Rydera Carrolla, projektanta z Nowego Jorku,...

przeczytaj »
2 lata temu

Idź oddaj krew

Zaczęły się wakacje, ludzie spędzają bardzo dużo czasu w samochodach, jest sporo wypadków i krew jes...

przeczytaj »
3 lata temu

15 mało znanych filmów, które warto obejrzeć

Uwielbiacie wpisy o filmach, prawda?

przeczytaj »
%d bloggers like this: