Intereting Posts
Сохранение пользовательских полей вложений Добавить пользовательский текст в мета-области изображения медиа-библиотеки Добавить «Выбрать» для настраиваемого типа сообщения Metabox Как добавить купонный принтер? Страница разбивки на страницы 404 не найдена Продукт с изменением по умолчанию – фотография WooCommerce Как получить больше данных о сообщении от wp_query Новая пользовательская форма – страница пользовательского меню Пользовательские поля не отображаются для пользовательских типов сообщений Миниатюра разных размеров Не удалось загрузить файлы Проблема с тайм-аутом WP Admin при перечислении администраторов Тестирование локального сервера с помощью MAMP / wordpress на мобильном устройстве? Рабочий процесс и передовая практика для документации Попытка использовать wp_set_object_terms при поставке массива для идентификатора term и texonomies

Обрезка настраиваемого поля на длину

У меня есть настраиваемое поле, добавленное через плагин Advanced Custom Fields. Я пытаюсь обрезать содержимое поля до заданного количества слов. Я попытался использовать фильтр выдержки и установить пользовательскую длину, см. Ниже код, но он не работает, подумал?

// set the length of the excerpt function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); // apply the filter and strip crap from 'description' // http://codex.wordpress.org/Function_Reference/the_content $content = apply_filters('the_excerpt', get_field('description')); $content = str_replace(']]>', ']]>', $content); echo $content; //echo wp_trim_excerpt($content); 

Я также пробовал функцию wp_trim_except (), но ничего не делает. Вся длина текста повторяется.

Выдержка является специфическим полем в WordPress и полностью не связана с настраиваемыми полями, поэтому материал выдержки, который вы пытались, не имеет никакого эффекта.

Нет встроенного способа обрезать пользовательские поля, вы должны сделать это вручную с небольшим количеством php:

 $length = 20; $text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec diam enim, egestas ut facilisis sit amet, semper sed turpis. Phasellus dolor nisl, pretium non imperdiet nec, cursus quis turpis. Duis sed lorem tortor, a gravida magna. Integer commodo cursus ante, non varius odio aliquam quis. Aenean tincidunt congue ultricies. Donec ut orci vel ante laoreet bibendum. Aliquam vitae erat arcu. Nam et mi nunc. Proin sed lorem ac odio vestibulum blandit sit amet id dolor. Sed in augue id massa feugiat convallis.'; $words = explode(' ', $text); array_splice($words, $length); $text = implode(' ', $words); echo $text;