발췌에서 문자 길이를 어떻게 제한 할 수 있습니까?
2 대답
- 투표
-
- 2012-10-30
function.php 파일에이 줄을 추가하십시오
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
add these lines in function.php file
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
-
이것은 단어 수를 문자가 아닌 20 개로 제한합니다.This limits the number of words to 20, not the characters.
- 9
- 2016-12-07
- Ionut
-
여기에 999 번을 추가 한 이유는 무엇입니까?Why we have added number 999 here?
- 0
- 2018-04-11
- Navnish Bhardwaj
-
@NavnishBhardwaj 999는로드 할 필터의 우선 순위입니다.자세한 내용은 여기를 참조하십시오. https://developer.wordpress.org/reference/functions/add_filter/@NavnishBhardwaj 999 is the priority for the filter to be loaded. refer here for more details. https://developer.wordpress.org/reference/functions/add_filter/
- 1
- 2018-04-18
- Annapurna
-
- 2012-10-30
여기에 Deepa의 답변에서 제공 한 위의 필터 후크 외에도
the_excerpt
사용을 두 가지 방법으로 확장하는 데 도움이되는 추가 기능이 있습니다.다음을 수행 할 수 있습니다 ...
발췌 부분을 문자 수로 제한하되 마지막 단어를 자르지 마십시오. 이렇게하면 최대 문자 수를 반환하지만 전체 단어를 보존 할 수 있으므로 지정된 수 제한에 맞는 단어 만 반환되고 발췌 내용의 출처를 지정할 수 있습니다.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
이 기능은 각기 다른 글자 수 제한이 지정된 테마 파일을 통해 여러 번 사용할 수 있습니다.
이 함수는 둘 중 하나에서 발췌를 검색 할 수 있습니다.
-
the_content
-
the_excerpt
예를 들어,게시물 편집기 화면의 _excerpt 상자에 텍스트가 포함 된 게시물이 있지만 특수한 사용 사례 대신 _content 본문에서 발췌 한 내용을 가져 오려면 대신 수행합니다.
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
이는
the_excerpt
상자에 발췌가 설정되어 있는지 여부에 관계없이the_excerpt
에서 처음 140자를 원한다는 것을 함수에 알립니다.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
이 함수는
the_excerpt
의 처음 140자를 먼저 원하고 발췌가 없으면the_excerpt
가 대체로 사용됩니다.이 기능을 개선하여보다 효율적으로 만들거나
the_excerpt
또는the_excerpt
모두에 대해 WordPress 필터를 사용하거나 간단히 사용할 수 있습니다. 적합하지 않음 ,내장 된 WordPress API 대안입니다.In addition to the above filter hook supplied by Deepa's answer here is one additional function that can help you extend the use of
the_excerpt
in two ways,Allows you to...
Limit the excerpt by number of characters but do NOT truncate the last word. This will allow you to return a maximum number of characters but preserve full words, so only the words that can fit within the specified number limit are returned and allow you to specify the source of where the excerpt will come from.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
This function can be used multiple times through out theme files, each with different character limits specified.
This function has the ability to retrieve an excerpt from either,
the_content
the_excerpt
For example, if you have posts that contain text in the_excerpt box on the post editor screen, but want to pull an excerpt from the_content body instead for a special use case you would instead do;
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
This tells the function that you want the first 140 characters from
the_content
, regardless of whether an excerpt is set inthe_excerpt
box.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
This tells the function that you want the first 140 characters from
the_excerpt
first and if no excerpt exists,the_content
will be used as a fallback.The function can be improved to be made more efficient and or incorporated with the use of WordPress filters for both
the_content
orthe_excerpt
or simply used as is in situations where there is no suitable, in-built WordPress API alternative.-
안녕!제공된 답변에 감사드립니다!발췌 끝에 [...] 대신 ...을 사용하여 어떻게 작동하는지 묻고 싶습니다.Hi! Thanks for all for the answer provided! I would like to ask, how to make it work with ... instead of [...] at the end of excerpt?
- 0
- 2012-11-02
- Jornes
-
마지막 줄`$excerpt=$excerpt .'... more ';`는말하자면 "더 읽기"링크입니다.줄임표가 추가되는 것을 볼 수 있지만 원하는 것을 추가 할 수 있습니다.The last line, `$excerpt = $excerpt.'... more';` is what you can use to define your "read more" link so to speak. You can see there it adds an ellipsis but you can add whatever you like.
- 0
- 2012-11-02
- Adam
-
@Jornes는 아마도 6 년 늦었지만 여기에 줄임표`& hellip;`에 대한 HTML 코드가 있습니다.@Jornes it maybe 6 years late, but here is the HTML code for the ellipsis `…`
- 1
- 2018-07-20
- AlbertSamuel
-
@AlbertSamuel 답변 해 주셔서 감사합니다.:)@AlbertSamuel Thank you for the answer. :)
- 1
- 2019-05-10
- Jornes
가능한 중복 :
문자 발췌
이 게시물을 읽은 후 질문이 있습니다 ( 검색을 강조하는 방법플러그인이없는 용어 ).이 기능 (플러그인없는 검색어)이 너무 마음에 들지만 문자 길이가 너무 깁니다.발췌 부분을 더 짧게 만들려면 어떤 PHP 코드를 추가해야합니까?누군가가 그것을 제안 할 수 있다면 감사하겠습니다.감사합니다!