Skocz do zawartości
nappy

[wordpress 2.9] i wrzucenie <!--more> w paragraf

Rekomendowane odpowiedzi

Założenia:

 

WP standardowo wypluwa tak:

 

<p> jakis tam tekst przed 'more'<span id="more-29"></span>jakis tam tekst po more</p>

a chciałbym, żeby wypluwał tak:

 

<p> jakis tam tekst przed 'more'</p><span id="more-29"></span><p class="post-more">jakis tam tekst po more</p>

Czyli jak widać chciałbym, aby to co znajduje się po <!-- more --> szło z automatu w nowy paragraf. Da się to zrobić modyfikując pliki Wp ale tego chciałbym uniknąć (potrzebne to do theme'a który będzie publicznie dostępny).

Gdyby ktos byl ciekaw po co mi to: chce z jquery chowac ten fragment i wyswietlac sliderem po kliknieciu w link (da sie wygenerowac calosc na stronie glownej a nie tylko w single-post view).

 

 

plz help :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ok rozwiązałem swój problem, poniżej kod dla potomnych. Może komuś się przyda.

 

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:

show_post(); // wyświetli wstęp, domyślnie 600 znakówshow_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:

 

show_post(excerpt, 700); //pierwszy parametr nie jest wymaganyshow_post(content, 700); //wyświetli reszte tekstu

 

 

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";        }    }

enjoy! :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...