Wsparcie » Używanie i konfiguracja WordPressa » Własne excerpt w pliku motywu.

  • Rozwiązano kamikadze88

    (@kamikadze88)


    Chodzi mi o coś takiego. Mam w kodzie motywu coś takiego:

    <p> <?php echo esc_html( $content_details[$j-1] [ 'excerpt'] ); ?></p>

    Chciałbym w tej linii utworzyć własny excerpt dla przykładu excerpt1.
    W pliku functions.php motywu na samym końcu dodałem:

    add_filter( 'excerpt1_length', function( $length ) { return 40; } );
    function the_excerpt1() {
        echo apply_filters( 'excerpt1', get_the_excerpt() );
    }

    Wtedy jednak tekst na stronie mi znika.
    Coś zrobiłem nie tak tylko co?
    Nie mogę znaleźć na żadnej stronie informacji jak robić własne takie rzeczy.

    • This topic was modified 3 years, 6 months temu by kamikadze88.
Viewing 7 replies - 1 through 7 (of 7 total)
  • Ten filter jest nieprawidłowo zrobiony. Powinno być tak:

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

    Nie mogę znaleźć na żadnej stronie informacji

    A w dokumentacji szukałeś?
    https://developer.wordpress.org/reference/hooks/excerpt_length/

    Thread Starter kamikadze88

    (@kamikadze88)

    Chodzi mi o to, aby mieć kilka excerpt dla przykładu:
    excerpt1
    excerpt2
    excerpt3

    Thread Starter kamikadze88

    (@kamikadze88)

    Teraz zrobiłem tak, że dodałem do pliku functions.php kod:

    function wpdocs_custom_excerpt_length( $length ) {
        if ( is_page_template( 'inc/sections/latest-post.php' ) ) {
            return 50;
        } else if ( is_front_page() && is_home() ) {
            return 80;
        } else {
            return $length;
        }
    }
    add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 );

    W pliku latest-post.php w linii:
    <p> <?php echo esc_html( $content_details[$j-1] [ 'excerpt'] ); ?></p>
    „excerpt” zamieniłem na „wpdocs_custom_excerpt_lengh” i na stronie głównej tekst pod obrazkiem zniknął. PO cofnięciu zmiany wrócił.

    Ten kod:
    <p> <?php echo esc_html( $content_details[$j-1] [ 'excerpt'] ); ?></p>
    to jakieś cuda są.
    Po co np utworzona jest taka tablica:
    $content_details[$j-1] [ 'excerpt']

    Jak powinna być zastosowana domyślna funkcja WordPressa czyli: the_excerpt();

    Co autor miał na myśli?

    Chodzi mi o to, aby mieć kilka excerpt dla przykładu:
    excerpt1
    excerpt2
    excerpt3

    Musisz jaśniej określać to o co ci chodzi. Gdzie to ma być, jak działać kiedy i itd. Na jakich stronach i przede wszystkim podaj link do motywu, z którego korzystasz.

    „excerpt” zamieniłem na „wpdocs_custom_excerpt_lengh” i na stronie głównej tekst pod obrazkiem zniknął. PO cofnięciu zmiany wrócił.

    Funkcji wpdocs_custom_excerpt_lengh nie używasz, żeby wyświetlić treść, gdyż do tego służy w.w. funkcja the_excerpt() lub the_content().
    Ty jedynie podpinasz się ze swoją funkcją (używając odpowiedniego filtra), żeby tamte zwracały określoną ilość słów.
    Jeżeli motyw jest poprawnie zakodowany, wystarczy ustawić tylko ten filtr.

    • Ta odpowiedź została zmodyfikowana 3 years, 6 months temu przez Paweł.
    Thread Starter kamikadze88

    (@kamikadze88)

    Ten motyw to News Vibe
    Zmieniłem teraz z:
    <p> <?php echo esc_html( $content_details[$j-1] [ 'excerpt'] ); ?></p>
    na:
    <p> <?php the_excerpt(); ?></p>
    I to samo.
    W motywie jest opcja zmiany długości excerpt( personalizacja, theme options, excerpt), ale ona nie działa w widżecie latest post.
    Jest tam:

    Excerpt section options.
    Blog Page Excerpt Length
    Note: Min 5 & Max 100. Total words to be displayed in archive page/search page.

    Chcę po prostu zmienić ilość słów wyświetlanych pod obrazkiem w sekcji latest posts motywu na stronie głównej.

    W pliku inc/section/latest-post.php, w linii 35 masz:

    $page_post['excerpt'] = news_vibe_trim_content( 25 );

    Tym kontrolujesz długość zajawki.
    Zmień sobie tą liczbę (25) na jaką chcesz.

    Albo lepiej, przy użyciu zaczepu filtra:

    function latest_post_custom_excerpt_length( $content ) {
    	$długość = 1;
    	$trimmed_content = wp_trim_words( $content, $długość, '...' );
        return $trimmed_content;
    }
    add_filter( 'news_vibe_trim_content', 'latest_post_custom_excerpt_length', 999 );

    P.s. Pod warunkiem, że tylko do tam użyto tej funkcji.

    • Odpowiedź została zmodyfikowana 3 years, 6 months temu przez Paweł. Powód: P.s
Viewing 7 replies - 1 through 7 (of 7 total)
  • Temat ‘Własne excerpt w pliku motywu.’ jest zamknięty na nowe odpowiedzi.