사용자 정의 필드 자르기
1 대답
- 투표
토론 참조 분류 간단한 설명 은 문자열을 줄이는 더 나은 방법입니다. 잘리는 WP 기능을 알지 못합니다.
다음은 링크 된 토론을 기반으로 한 내 코드입니다.
<사전> <코드> /** * 단어를 끊지 않고 UTF-8로 인코딩 된 문자열을 줄입니다. * * @param string $ string 단축 할 문자열 * @paramint $max_chars 최대 문자 길이 * @param string $ append는 잘린 단어를 대체합니다. * @return 문자열 */ function utf8_truncate ($ string,$max_chars=200,$ append="\ xC2 \ xA0…") { $ string=strip_tags ($ string); $ string=html_entity_decode ($ string,ENT_QUOTES,'utf-8'); //\ xC2 \ xA0은 중단없는 공간입니다. $ string=trim ($ string,"\n \ r \t .-; –,— \ xC2 \ xA0"); $ length=strlen (utf8_decode ($ string)); //할 것이 없다. if ($ length & lt; $max_chars) { return $ string; } //mb_substr ()은/wp-includes/compat.php에 있습니다. //현재 PHP 설치에 없습니다. $ string=mb_substr ($ string,0,$max_chars,'utf-8'); //공백이 없습니다. 하나의 긴 단어 또는 중국어/한국어/일본어 텍스트. if (FALSE===strpos ($ string,'')) { $ string을 반환합니다. $ append; } //단어 내에서 구분을 피하십시오. 마지막 공백을 찾으십시오. if (extension_loaded ( 'mbstring')) { $pos=mb_strrpos ($ string,'','utf-8'); $ short=mb_substr ($ string,0,$pos,'utf-8'); } 그밖에 { //해결 방법. 긴 문자열에서는 느릴 수 있습니다. $ words=explode ( '',$ string); //마지막 단어를 삭제합니다. array_pop ($ words); $ short=implode ( '',$ words); } $ short를 반환합니다. $ append; }테스트
print utf8_truncate ( 'ööööö ööööö',10);
//'ööööö…'출력
functions.php
에 함수를 추가하고 코드를 다음과 같이 변경합니다.
echo '& lt;p >' . utf8_truncate ($ desc). '& lt;/p >';
제목을 줄일 수도 있습니다.
echo '& lt; h1 >' . utf8_truncate (get_the_title ()). '& lt;/h1 >';
See the discussion for Taxonomy Short Description for a better way to shorten a string. I’m not aware of a WP function that is getting truncation right.
Here is my code based on the linked discussion:
/**
* Shortens an UTF-8 encoded string without breaking words.
*
* @param string $string string to shorten
* @param int $max_chars maximal length in characters
* @param string $append replacement for truncated words.
* @return string
*/
function utf8_truncate( $string, $max_chars = 200, $append = "\xC2\xA0…" )
{
$string = strip_tags( $string );
$string = html_entity_decode( $string, ENT_QUOTES, 'utf-8' );
// \xC2\xA0 is the no-break space
$string = trim( $string, "\n\r\t .-;–,—\xC2\xA0" );
$length = strlen( utf8_decode( $string ) );
// Nothing to do.
if ( $length < $max_chars )
{
return $string;
}
// mb_substr() is in /wp-includes/compat.php as a fallback if
// your the current PHP installation doesn’t have it.
$string = mb_substr( $string, 0, $max_chars, 'utf-8' );
// No white space. One long word or chinese/korean/japanese text.
if ( FALSE === strpos( $string, ' ' ) )
{
return $string . $append;
}
// Avoid breaks within words. Find the last white space.
if ( extension_loaded( 'mbstring' ) )
{
$pos = mb_strrpos( $string, ' ', 'utf-8' );
$short = mb_substr( $string, 0, $pos, 'utf-8' );
}
else
{
// Workaround. May be slow on long strings.
$words = explode( ' ', $string );
// Drop the last word.
array_pop( $words );
$short = implode( ' ', $words );
}
return $short . $append;
}
Test
print utf8_truncate( 'ööööö ööööö' , 10 );
// prints 'ööööö …'
Add the function to your functions.php
and change your code to:
echo '<p>' . utf8_truncate( $desc ) . '</p>';
You can also use it shorten a title:
echo '<h1>' . utf8_truncate( get_the_title() ) . '</h1>';
맞춤 입력란을 사용하여 보조 설명을 가져옵니다.내장 된 WordPress 자르기를 사용하고 싶지만 알아낼 수없는 것 같습니다.
어떤 도움을 주시면 감사하겠습니다.