Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ucinanie wpisów
Forum PHP.pl > Forum > Przedszkole
Forrest
Witam,

Mam problem z php w moim Wordpressie, w związku z powyższym pozwoliłem sobie zadać pytanie. Chodzi o ucinanie wpisów na stronie głównej. Automatycznie dzieje się to poprzez [...] i następuje po 55 słowach. Na ukazywanie się wpisu na stronie głównej nie ma w ogóle znaczenia opcja More w edycji danego posta.
Wpis w php wygląda następująco:
  1. /**
  2.  * Overrides default excerpt handling so we have more control
  3.  *
  4.  * @since 1.2.4
  5.  */
  6. remove_filter('get_the_excerpt', 'wp_trim_excerpt');
  7. add_filter('get_the_excerpt', 'improved_trim_excerpt');
  8. function improved_trim_excerpt($text) {
  9.  
  10. // Set allowed excerpt tags
  11. $allowed_tags = (pagelines_option('excerpt_tags')) ? pagelines_option('excerpt_tags') : '<p><br><a>';
  12.  
  13. $raw_excerpt = $text;
  14. if ( '' == $text ) {
  15. $text = get_the_content('');
  16.  
  17. $text = strip_shortcodes( $text );
  18.  
  19.  
  20. $text = apply_filters('the_content', $text);
  21.  
  22. $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text); // PageLines - Strip JS
  23.  
  24. $text = str_replace(']]>', ']]&gt;', $text);
  25.  
  26. $text = strip_tags($text, $allowed_tags); // PageLines - allow more tags
  27.  
  28. $excerpt_length = apply_filters('excerpt_length', 55);
  29. $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
  30. $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
  31. if ( count($words) > $excerpt_length ) {
  32. array_pop($words);
  33. $text = implode(' ', $words);
  34. $text = $text . $excerpt_more;
  35. } else {
  36. $text = implode(' ', $words);
  37. }
  38. }
  39. return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
  40. }


W czym jest problem? Mianowicie po wejściu w dany temat (post) zostaje ucięty akapit, w którym jest [...]. Moja strona na której można sprawdzić o co chodzi jest dostępna tutaj (wystarczy wejść w pierwszy lepszy post oprócz pierwszy, który jest testowy i zbyt krótki).

Oczywiście mogę powiększyć liczbę w tym wersie
  1. $excerpt_length = apply_filters('excerpt_length', 55)

do na 30 000 słów, niemniej wtedy nie wiem dlaczego dublują mi się posty, tzn. po wejściu w dany post jest on widoczny zdublowany, ale w edycji post nie widać podwójnego posta tylko pojedynczy (czyli niby dobrze). Sprawdzić to można w temacie tym temacie na mojej stronie. Pierwszy akapit jest zdublowany, ale ja tej pierwszej wersji w edycji nie widzę i nie mogę nic zmienić.

Co powinienem w kodzie zmienić, aby nie ucinało mi tekstu w taki sposób, że znika reszta akapitu w temacie. Wolałbym, aby ucinało mi widok w głownym w takim miejscu w jakim ja chce - czyli po użyciu funkcji "More" w edycji tematu.

Za pomoc z góry dziękuję.
memory
usuń to add_filter('get_the_excerpt', 'improved_trim_excerpt'); i powinno śmiagać
Forrest
Po wycięciu powyższego wersu brak w ogóle na stronie fragmentów wpisów . Widoczne są tylko tematy posta i "Czytaj dalej...". Tak więc to nie to.

Wolałbym - jeśli jest taka możliwość - aby na stronie były wyświetlane fragmentu konkretnego wpisu, które to ja będę tworzył poprzez użycie taga "more".
memory
sorki usuń
  1. remove_filter('get_the_excerpt', 'wp_trim_excerpt');
  2.  
  3. add_filter('get_the_excerpt', 'improved_trim_excerpt');


jak nie zadziała to spróbuj dodać
  1. add_filter('get_the_excerpt', 'wp_trim_excerpt');
Forrest
Problem udało mi się rozwiązać z poziomu szablonu. Przepraszam za zawracanie gitary. Już mówię jak.

Korzystam z szablonu Platform. W ustawieniach w PageLineSetting->Blog Ang Posts->Post Excerpt or Summary Handling odznaczamy Single Post Pages, ale zaznaczamy Posts/Blog Page.

Teraz już nie ma powtarzania, ale cały czas ucina tekst. W związku z powyższym w wersie podanym w pierwszym poście zamiast 55 zrobiłem 30000. Niestety każdy wpis, który mam na blogu muszę poprawiam ręcznie poprzez dodanie More tam gdzie chce, ale jest ok smile.gif

Może komuś się przyda rozwiązanie. Chyba ten temat mogłem zamieścić tutaj - Forum: Systemy portalowe i CMS y prawda ?

Pozostaje mały problem - dlaczego nie ma możliwości pojawienia się edycji tekstu w tych "fragmentach" z widoku strony głównej (brak pogrubień, podkreśleń, kursywy).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.