wp_trim_words не работает ни на чем, кроме обычных строк

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

Это не работает, он возвращает весь текст:

<?php 
$field = the_field('project_description');
$trimmedfield = wp_trim_words( $field, $num_words = 1, $more = '… ' );
echo '<p>' . $trimmedfield . '</p>';  
?>

Это, однако, работает:

<?php 
$field = 'this text does get trimmed';
$trimmedfield = wp_trim_words( $field, $num_words = 1, $more = '… ' );
echo '<p>' . $trimmedfield . '</p>';  
?>

Вывод поля $ вместо этого выводит текст, который я пытаюсь обрезать, но обрезка не работает. Есть идеи, почему?

редактировать - я тоже пробовал это, происходит то же самое:

<?php
   $length = 1;
   $text = the_field('project_description');
   $words = explode(' ', $text);
   array_splice($words, $length);
   $text = implode(' ', $words);
   echo $text; 
?>

1 ответ

Использование var_dump($field);wp_trim_words( $field,....)$field должен быть строковым типом... проверьте, если это или нет, чтобы проверить тип данных, если он не уверен, что вы знаете, что делать тогда.

использование typecast если нет.

Вам нужно будет изменить $field переменная к этому: $field = get_field('project_description');

the_field(); выводит контент, а get_field(); получает это. Чтобы передать его через функцию, вам нужно получить его.

Страница документации ACF, которая отвечает на этот вопрос: https://www.advancedcustomfields.com/resources/displaying-custom-field-values-in-your-theme/

Другие вопросы по тегам