Как ограничить пользовательские поля?

Я использую настраиваемые поля, чтобы вытащить вторичное описание. Я хотел бы использовать встроенное ограничение WordPress, но не могу понять как это сделать.

$desc = get_post_meta($post->ID, "youtube-desc", true);
echo '<p>' . $desc . '</p>';

Прошу любой помощи.

Понравилась статья? Поделиться с друзьями:
WPAsk
Ответов: 1
  1. fuxia

    Вот мой способ:

    /**
     * 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 = "xC2xA0…" )
    {
        $string = strip_tags( $string );
        $string = html_entity_decode( $string, ENT_QUOTES, 'utf-8' );
        $string = trim( $string, "nrt .-;–,—xC2xA0" );
        $length = strlen( utf8_decode( $string ) );
    
        if ( $length < $max_chars )
        {
            return $string;
        }
    
        $string = mb_substr( $string, 0, $max_chars, 'utf-8' );
    
        if ( FALSE === strpos( $string, ' ' ) )
        {
            return $string . $append;
        }
    
        if ( extension_loaded( 'mbstring' ) )
        {
            $pos   = mb_strrpos( $string, ' ', 'utf-8' );
            $short = mb_substr( $string, 0, $pos, 'utf-8' );
        }
        else
        {
            $words = explode( ' ', $string );
            array_pop( $words );
            $short = implode( ' ', $words );
        }
    
        return $short . $append;
    }
    

    Тест

    print utf8_truncate( 'ööööö ööööö' , 10 );
    

    Добавьте функцию в свой functions.php и измените код:

    echo '<p>' . utf8_truncate( $desc ) . '</p>';
    

    А также:

    echo '<h1>' . utf8_truncate( get_the_title() ) . '</h1>';
    
Добавить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: