문자 발췌
4 대답
- 투표
-
- 2012-10-16
마지막 프로젝트 중 하나에서이 코드를 사용했습니다.
function ng_get_excerpt( $count ){ $permalink = get_permalink( $post->ID ); $excerpt = get_the_content(); $excerpt = strip_tags( $excerpt ); $excerpt = mb_substr( $excerpt, 0, $count ); $excerpt = mb_substr( $excerpt, 0, strripos( $excerpt, " " ) ); $excerpt = rtrim( $excerpt, ",.;:- _!$&#" ); $excerpt = $excerpt . '<a href="'.$permalink.'" style="text-decoration: none;"> (...)</a>'; return $excerpt; }
여기에서 가져 왔습니다.
http://wordpress.org/support/topic/limit -문자 길이 별 발췌
마지막에 구두점을 허용하지 않고 마지막 완전한 단어로 끝나는 장점이 있습니다.
@medhamza7 또는 @bainternet 또는 @fuxia 가 바람직합니다.
I used this code in one of my last projects:
function ng_get_excerpt( $count ){ $permalink = get_permalink( $post->ID ); $excerpt = get_the_content(); $excerpt = strip_tags( $excerpt ); $excerpt = mb_substr( $excerpt, 0, $count ); $excerpt = mb_substr( $excerpt, 0, strripos( $excerpt, " " ) ); $excerpt = rtrim( $excerpt, ",.;:- _!$&#" ); $excerpt = $excerpt . '<a href="'.$permalink.'" style="text-decoration: none;"> (...)</a>'; return $excerpt; }
I got it from here:
http://wordpress.org/support/topic/limit-excerpt-length-by-characters
It has the advantage of not allowing punctuation on the end and ending with the last complete word
Using the filters as suggested by @medhamza7 or @bainternet or @fuxia is preferable.
-
이 조언에 감사드립니다. 효율적인 조언은 간단합니다. "echo substr (get_the_excerpt (),0,30);"귀하의 링크에서 가져 왔습니다.Very thanks for this advice, efficient one for me is just simple: "echo substr(get_the_excerpt(), 0,30);" taken from Your links.
- 0
- 2012-10-16
- Marcin
-
@Marcin [`substr ()`이 중단됩니다] (http://wpengineer.com/2410/dont-use-strlen/).UTF-8로 인코딩 된 데이터에는 절대 사용하지 마십시오.@Marcin [`substr()` will break](http://wpengineer.com/2410/dont-use-strlen/). Never use it on UTF-8 encoded data.
- 0
- 2012-10-16
- fuxia
-
- 2012-10-16
이 답변의
utf8_truncate()
함수를 사용 하고wp_trim_excerpt()
.테스트되지 않은 샘플 코드 :
add_filter( 'excerpt_more', 'wpse_69436_excerpt_more' ); function wpse_69436_excerpt_more( $more ) { add_filter( 'wp_trim_excerpt', 'wpse_69436_trim_excerpt' ); // we remove the more text here return ''; } function wpse_69436_trim_excerpt( $excerpt ) { return utf8_truncate( $excerpt, 300 ); }
Use the function
utf8_truncate()
from this answer and fight your way throughwp_trim_excerpt()
.Sample code, not tested:
add_filter( 'excerpt_more', 'wpse_69436_excerpt_more' ); function wpse_69436_excerpt_more( $more ) { add_filter( 'wp_trim_excerpt', 'wpse_69436_trim_excerpt' ); // we remove the more text here return ''; } function wpse_69436_trim_excerpt( $excerpt ) { return utf8_truncate( $excerpt, 300 ); }
-
- 2012-10-16
WordPress에는excerpt_length라는 편리한 이름의 필터가 있으며 여러 문자를 허용하므로 다음과 같습니다.
function custom_excerpt_length( $length ) { return 50; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
50을 원하는대로 변경합니다.
@toscho 댓글 별 업데이트 :
위의 해결책은 문자가 아닌 단어에 대한 것이므로 여기에 빠른 해결책이 있습니다.
add_filter('the_excerpt','excerpt_char_limit'); function excerpt_char_limit($e){ return substr($e,0,50); }
WordPress has a filter for that which is conveniently named excerpt_length and it accepts a number of chars so:
function custom_excerpt_length( $length ) { return 50; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
change 50 to whatever limit you want.
Update per @toscho comment:
that is the solution above is for words as well and not for chars so here is a quick one:
add_filter('the_excerpt','excerpt_char_limit'); function excerpt_char_limit($e){ return substr($e,0,50); }
-
그것은 문자가 아니라 단어를위한 것입니다.That’s not for characters, it is for words.
- 1
- 2012-10-16
- fuxia
-
@toscho 내 나쁜!간단한 솔루션으로 업데이트@toscho My bad! updated with a simple solution
- 0
- 2012-10-16
- Bainternet
-
어떻게 작동합니까?나는 그것을 "echo custom_excerpt_length ();"로 넣었지만 작동하지 않습니다.How does it works? i put it as "echo custom_excerpt_length(); " but it doesn't work.
- 0
- 2012-10-16
- Marcin
-
감사합니다,이제 작동하지만 첫 페이지에 발췌 길이를 제공하는 방법은 무엇입니까?Thanks, now it works, but how to give some excerpts lengths for front page?
- 0
- 2012-10-16
- Marcin
-
@Bainternet-내가 준 : "add_filter ( 'the_excerpt2','excerpt_char_limit2'); functionexcerpt_char_limit2 ($e) { return substr ($e,0,10); } "하지만 작동하지 않습니다.@Bainternet - I gave: "add_filter('the_excerpt2','excerpt_char_limit2'); function excerpt_char_limit2($e){ return substr($e,0,10); }" but it doesn't work.
- 0
- 2012-10-16
- Marcin
-
- 2017-11-06
더 나은 방법으로
get_the_excerpt
필터를 사용할 수 있습니다.function get_excerpt($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = mb_substr($excerpt, 0, $limit); $excerpt = mb_substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; } add_filter('get_the_excerpt',"get_excerpt");
$limit=140
을 원하는 문자 수로 변경합니다. 또한 다른 방식으로 원하는 경우 :add_filter('get_the_excerpt',function ($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = mb_substr($excerpt, 0, $limit); $excerpt = mb_substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; });
이렇게하면
get_excerpt
함수의 기존 이름과 같은 충돌을 방지 할 수 있습니다.For a better way, you can use the
get_the_excerpt
filter:function get_excerpt($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = mb_substr($excerpt, 0, $limit); $excerpt = mb_substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; } add_filter('get_the_excerpt',"get_excerpt");
Change the
$limit=140
to the number of characters you want. Also if you want in different way:add_filter('get_the_excerpt',function ($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = mb_substr($excerpt, 0, $limit); $excerpt = mb_substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; });
That will make avoid any conflict like existing name of function
get_excerpt
.-
@Nicolai 나는 우리가`mb_substr`을 사용하지 말아야한다고 생각하는데,기본적으로 일부 PHP 구성은mb 기능을 활성화하지 않습니다.@Nicolai i think we should avoid using `mb_substr` cause some php config by default doesn't activated mb functions :/
- 0
- 2018-02-26
- med amine hamza
-
[여기] (https://wordpress.stackexchange.com/a/11089/22534)에서 읽은 것처럼 WP에는 대체 기능이 있습니다.As read [here](https://wordpress.stackexchange.com/a/11089/22534), WP has a fallback for it.
- 0
- 2018-02-26
- Nicolai
functions.php에 코드가 있습니다 :
하지만 발췌 부분을 문자 수로 제한해야합니다. 도와 주 시겠어요?