![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 22.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, nie wiem jak się za takie coś zabrać:
Potrzebuje po pobraniu konkretnego tekstu (np 1500znaków ale będzie to zmienna liczba) podzielić go na 2 nierówne części. Np pierwsza ma 300znaków a druga - reszte. Czyli coś na kształt explode(); która nie dzieli po określonym separatorze a określonej ilości znaków... Zawsze można podzielić na równe części i wszystkie prócz pierwszej potraktować implode(); tylko kurcze nie wiem jak rozwiązać samo dzielenie tekstu. Byłbym wdzięczny za każde info, nie oczekuje gotowca - ucze się i chętnie poczytam 'wskazówki' (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 22.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok (dzięki Waszej pomocy) rozwiązałem swój problem, poniżej kod dla potomnych. Może komuś się przyda. Przy okazji byłbym wdzięczny gdyby ktoś to sprawdził/napisał co można było zrobić inaczej etc. Jakieś uwagi (IMG:style_emoticons/default/smile.gif)
-- Całość wrzucamy do pliku functions.php w głównym katalogu naszego theme'a. (wp includuje ten plik automatycznie). Co to robi? Dzieli nam tekst (cały, bez tagów <p>,<span> itp - czysty tekst) na 2 części. Pierwsza (excerpt) wyświetla fragment tekstu od początku do (domyślnie) 600 znaku. Skrypt wyszukuje pierwszą kropke/wykrzyknik/znak zapytania/średnik i dopiero po nim ucina tekst. Więc problem ucinania słowa/zdania w środku odpada. Plusy wiadome, możemy osobno wywoływać/formatować wstęp/tekst, działać na nim z jQuery, nie ma żadnych tagów-śmieci z WP. Wywołanie: Kod show_post(); // wyświetli wstęp, domyślnie 600 znaków show_post(content, 666); // wyświetli część tekstu zaczynając od 666 znaku. Więc jeśli chcemy wyświetlić cały tekst w ciągu od np 700 znaku to wpisujemy: Kod show_post(excerpt, 700); //pierwszy parametr nie jest wymagany show_post(content, 700); //wyświetli reszte tekstu Kod function cut_off($lookfor, $lenght) { global $more; $more = 1; $whole_content = get_the_content(); $cutoff_pos = strpos($whole_content, $lookfor, $lenght); return $cutoff_pos; } function show_post($select = "excerpt", $excerpt_lenght = "600") { global $more; $more = 1; $whole_content = get_the_content(); $whole_content_lenght = strlen($whole_content); if ($excerpt_lenght<$whole_content_lenght) { $punctation[0] = cut_off('.',"$excerpt_lenght"); $punctation[1] = cut_off('!',"$excerpt_lenght"); $punctation[2] = cut_off('?',"$excerpt_lenght"); $punctation[3] = cut_off(';',"$excerpt_lenght"); $i = 0; foreach($punctation as $pointer) { if(empty($pointer) === FALSE) { $true[$i] = $pointer; } $i++; } $nearest_pointer = min($true); $nearest_pointer = $nearest_pointer+1; $text[excerpt] = substr($whole_content, 0, $nearest_pointer); $text[content] = substr($whole_content, $nearest_pointer); echo $text[$select]; } else { echo "$whole_content"; } } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 04:21 |