Intereting Posts
Как добавить элементы в меню через PHP-файл? Загрузите изображение пользовательского поля WordPress и установите его для показа изображения WordPress блог, есть ли способ сделать кого-нибудь сообщение в блоге без регистрации Стриптиз HTML-тегов из результатов поиска Функция WP-Cron не срабатывает Как сохранить текстовое поле и остановить tinymce? Woocommerce добавляет способ оплаты за пределы проверки и моей учетной записи Разрешить символы UTF-8 в части URL-адреса пользователя URL-адреса Удалите wpautop из всех сообщений / страниц, кроме моего настраиваемого типа сообщения Указатели указателей на пользовательский тип сообщения get_term_by "name" не работает с & name Получить категории для определенной должности – Пользовательский тип сообщения WordPress не переводит Как я могу выполнить набор изменений .diff из core.trac.wordpress.org локально? Показать одну категорию на почте

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

Я использую настраиваемые поля, чтобы вытащить вторичное описание. Я хотел бы использовать встроенный в 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>';