Intereting Posts
Встроенный Twitter-канал не будет отображаться красиво при загрузке через Ajax Есть ли у WordPress агент браузера? настраиваемый шаблон для настраиваемого типа сообщения Удалить ссылку на сообщение от пользователей, которые не имеют доступа к этому сообщению Как использовать шрифтовые значки в редакторе TinyMce? Какова роль и история глобальной переменной $ content_width? получить сообщение id в то время как циклы, выводящие идентификатор страницы Пользовательский запрос: запрос по пользовательским метаданным Эхо-иерархический список почтовых данных из настраиваемых полей Изменить меню на языке? Создание шаблона пользовательской публикации по умолчанию, который может изменять тема QTranslate для пользовательского типа сообщения Проблема в установке темы? Как настроить HTML-код по умолчанию для приложений WordPress Сложный PHP для json_encode> как правильно обрабатывать / выводить?

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

У меня есть настраиваемое поле, добавленное через плагин 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;