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/
Chodzi mi o to, aby mieć kilka excerpt dla przykładu:
excerpt1
excerpt2
excerpt3
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 2 years, 11 months temu przez
Paweł.
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 2 years, 11 months temu przez
Paweł. Powód: P.s