Приветствую всех!
На сайте есть поле ACF, в которое я добавлю текст и изображение. Изображение выводится шорткодом: [image id="1"].
После сохранения страницы шорткод "превращается" в тег.
То-есть, я занес: [image id="1"], страница обновилась и в поле, куда занес отображается:
<img class="img-fluid" loading="lazy" src ="https://test.ru/wp-content/uploads/2023/03/summer-service.jpeg" srcset="https://test.ru/wp-content/uploads/2023/03/summer-service.jpeg 719w, https://test.ru/wp-content/uploads/2023/03/summer-service-216x300.jpeg 216w" sizes="(max-width: 719px) 100vw, 719px" alt="Сотрудник "/>
Отсечены самые банальные вещи:
1. Поле точно сохраняется, если добавить любой текст рядом, то после сохранения он остается.
2. Вывод поля через pre возвращает текст и уже готовое изображение.
3. Поле ACF - текстовая область (не редактор).
Я хочу, чтобы в поле оставался шорткод, не становясь тегом.
Что пробовал:
if (!empty($more_advantages)):
echo do_shortcode($more_advantages); // Преобразует шорткод в HTML
endif;
add_filter( 'acf/shortcode/allow_unsafe_html', '__return_true' );
add_filter( 'acf/the_field/allow_unsafe_html', '__return_true' );
и такое тоже:
add_filter('acf/update_value/name=your_field_name', 'save_shortcode_as_text', 10, 3);
function save_shortcode_as_text($value, $post_id, $field) {
return esc_textarea($value); // экранирует значение чтобы сохранить текстом, без выполнения
}