programing

Wordpress 제목: 50자를 초과하는 경우 생략 부호 표시

codeshow 2023. 3. 18. 09:12
반응형

Wordpress 제목: 50자를 초과하는 경우 생략 부호 표시

제목이 있는 WordPress 사이트가 있는데 제목이 50자를 넘으면 줄임표를 추가해야 합니다....제목 말미에 있는 제목을 50자로 정지합니다.

아래는 제가 쓰고 있는 PHP입니다만, 정상적으로 동작하지 않는 것 같습니다.

<?php if (strlen("the_title()") > 50) { ?>
    <?php the_title(); ?>
<?php } if (strlen("the_title()") < 50) { ?>
    <?php echo substr(get_the_title(), 0, 50); ?>...
<?php } ?>   

mb_strimwidth 함수는 바로 이 기능을 수행합니다.

echo mb_strimwidth(get_the_title(), 0, 50, '...');

WordPress는 기능이 내장되어 있습니다."wp_trim_words()"입력한 단어 수에 따라 문장을 자르기 위해 단어별로 자르기 기능을 사용할 수 있습니다.

https://codex.wordpress.org/Function_Reference/wp_trim_words

제목을 5단어 이상 잘라내려면 이 작업을 수행할 수 있습니다.

<?php
$title = get_the_title();
$short_title = wp_trim_words( $title, 5, '...' );
echo '<h3>'.$short_title.'</h3>';
?>

단일 코드, 100% 작동

PHP 함수 mb_strimwidth() | Wordpress 함수 get_title()

<?php 
echo mb_strimwidth( get_the_title(), 0, 100, '...' ); 
?>

이것을 테마 폴더의 「functions.php」파일에 추가합니다.

function the_title_excerpt($before = '', $after = '', $echo = true, $length = false) 
  {
    $title = get_the_title();

    if ( $length && is_numeric($length) ) {
        $title = substr( $title, 0, $length );
    }

    if ( strlen($title)> 0 ) {
        $title = apply_filters('the_title_excerpt', $before . $title . $after, $before, $after);
        if ( $echo )
            echo $title;
        else
            return $title;
    }
}

그럼 이렇게 제목을 불러주세요.

<?php the_title_excerpt('', '...', true, '50'); ?>

문자열 길이를 확인하는 중입니다."the_title()"따옴표를 삭제하면 효과가 있을 것입니다(Wordpress를 오랫동안 사용하지 않았기 때문에 _title()과 get_title()의 차이를 100% 확신할 수 없습니다.그것도 전환해야 할 수도 있습니다).

<?php if (strlen(the_title()) > 50) { ?>
                <?php the_title(); ?>
            <?php } if (strlen(the_title()) < 50) { ?>
                <?php echo substr(get_the_title(), 0, 50); ?>...
            <?php } ?>   

또는 아마도

<?php if (strlen(get_the_title()) > 50) { ?>
                <?php the_title(); ?>
            <?php } if (strlen(get_the_title()) < 50) { ?>
                <?php echo substr(get_the_title(), 0, 50); ?>...
            <?php } ?>   
<?php 
$title  = the_title('','',false);
if(strlen($title) > 60):
    echo trim(substr($title, 0, 65)).'...';
else:
    echo $title;
endif;
?>

가지고 가다the_title()를 사용할 때 인용구가 없습니다.strlen()기능.

echo (strlen(the_title())>50) ? (substr(the_title(), 0, 50) . "...") : the_title());

이것은 3진 연산자입니다.기본적으로 말하는 것은 그 결과가the_title()50자를 초과하여 처음 50자를 에코하고 다음으로 문자열을 에코합니다....그렇지 않은 경우 결과를 그대로 반영합니다.the_title().

에 대한 자세한 내용을 참조해 주세요.substr여기: http://php.net/manual/en/function.substr.php

3진 연산자에 대한 정보는 http://php.net/manual/en/language.operators.comparison.php 에서 찾을 수 있습니다.

strlen을 사용하다

eg: 

  <?php echo ((strlen(get_the_title())>50) ? (substr(get_the_title(), 0, 50) . "...") : get_the_title())?>

언급URL : https://stackoverflow.com/questions/4617769/wordpress-titles-if-longer-than-50-characters-show-ellipsis

반응형