Intereting Posts
как добавить значок / изображение для дочерней темы? Изменение префикса таблицы для существующего сайта WordPresss С чего начать Могу ли я установить макет панели управления по умолчанию для всех пользователей? count_many_users_posts, кроме текущего зарегистрированного пользователя? Как получить пользовательские типы сообщений, чтобы хорошо играть с schema.org (иначе как обернуть содержимое в разметке schema.org)? Поиск в реальном времени из таблицы базы данных Пропустить дополнительный параметр в URL-адресе Есть ли способ получить все имя или пул частей шаблона, используемых на странице? Найти и заменить доменное имя на лету? Сортировка get_users по настраиваемому полю Карусель каретки для почты Пользовательские постоянные ссылки с неработающим значением мета. Зачем? get_post_meta, производящий белый экран смерти Добавить пользовательские мета-элементы меню навигации

Усечение настраиваемых полей

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

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

Любая помощь будет оценена по достоинству.

Solutions Collecting From Web of "Усечение настраиваемых полей"

См. Обсуждение для таксономии Краткое описание для лучшего способа сократить строку. Я не знаю о функции WP, которая правильно усекает.

Вот мой код, основанный на связанном обсуждении:

 /** * 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; } 

Контрольная работа

 print utf8_truncate( 'ööööö ööööö' , 10 ); // prints 'ööööö …' 

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

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

Вы также можете использовать его для сокращения заголовка:

 echo '<h1>' . utf8_truncate( get_the_title() ) . '</h1>';