Wsparcie » Motywy » Automatyczne wstawianie 'więcej’ po określonej liczbie wersów

  • Chciałbym, aby w każdym poście wyświetlanym na stronie głównej, po 4 linijkach tekstu automatycznie był wstawiany link 'więcej’, którego kliknięcie powodowałoby przeniesienie na stronę posta. Wiem, że można to zrobić na poziomie edycji posta, wstawiając znacznik 'more’, ale chciałbym, aby działo się to automatycznie. Potrzebna jest do tego wtyczka, czy może można to jakoś załatwić zmianą kodu w którymś z plików szablonu?

    Strona przy której potrzebuję pomocy: [zaloguj się aby zobaczyć ten link]

Viewing 9 replies - 1 through 9 (of 9 total)
  • Podpinasz się po zaczep filtra excerpt_lengh:

    https://codex.wordpress.org/Plugin_API/Filter_Reference/excerpt_length

    To działa dla funkcji the_excerpt więc będziesz ją musiał zamienić z the_content.

    Thread Starter dygresywa

    (@dygresywa)

    1. Rozumiem, że wklejenie:

    function custom_excerpt_length( $length ) {
    	return 20;
    }
    add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); 

    w pliku functions.php wystarczy?

    2. W którym pliku dokonać zmiany z the_content na the_excerpt ?

    • Ta odpowiedź została zmodyfikowana 6 years, 7 months temu przez dygresywa.
    • Ta odpowiedź została zmodyfikowana 6 years, 7 months temu przez dygresywa.

    home.php jeżeli go posiadasz, bo on jest odpowiedzialny za stronę domową (główną).

    Thread Starter dygresywa

    (@dygresywa)

    OK, udało mi się. W przypadku mojego motywu zmiany trzeba było dokonać w pliku content.php.

    Jest tylko jeden problem. W powstałym w ten sposób wypisie zupełnie znika formatowanie, które stosuję indywidualnie dla każdego posta, pisząc go w edytorze. Znika np. podział na akapity. Wypis staje się jednym, ciągłym akapitem. Jak temu zaradzić?

    • Ta odpowiedź została zmodyfikowana 6 years, 7 months temu przez dygresywa.

    Hm…
    No to będziesz teraz musiał zrobić własną funkcje the_excerpt Link

    lub wrocic do poprzedniej i obciąć to w ten sposób:
    https://codex.wordpress.org/Function_Reference/wp_trim_words

    Thread Starter dygresywa

    (@dygresywa)

    Znalazłem funkcję wp_trim_words() w pliku formatting.php, ale przyznam, że nie wiem, w którym miejscu umieścić kod:

    <?php
    echo wp_trim_words( get_the_content(), 40, '...' );
    ?>

    Podstawiasz ją w miejsce the_content, tak jak to robiłeś wcześniej z the_excerpt.

    Thread Starter dygresywa

    (@dygresywa)

    Niestety, funkcja wp_trim_words() nie zachowuje tagów HTML, a zbyt słabo znam PHP, by zrobić własną funkcję the_excerpt.

    W związku z tym może inaczej: czy da się tak przerobić filtr excerpt_lenght, aby posty skracane były po określonej liczbie znaków, a nie słów? Jeśli tak, to jak to zrobić?

    Jeżeli nie czujesz się swobodnie z PHP spróbuj tej wtyczki. Chyba będzie miała wszystko to czego potrzebujesz
    https://wordpress.org/plugins/advanced-excerpt/

Viewing 9 replies - 1 through 9 (of 9 total)
  • Temat ‘Automatyczne wstawianie 'więcej’ po określonej liczbie wersów’ jest zamknięty na nowe odpowiedzi.