Я запускаю плагин Theme Checker для моей темы Wordpress, и у меня есть следующие фрагменты кода:
1. Получите и покажите только первое встроенное видео из содержимого публикации:
<?php $content = apply_filters( 'the_content', $post->post_content );
$embeds = get_media_embedded_in_content( $content );
$first_embedded = $embeds[0];
echo $first_embedded;
?>
2. Удалить любой встроенный контент из содержимого сообщения:
<?php
$content = apply_filters( 'the_content', $post->post_content );
$content = preg_replace("/(<iframe[^<]+<\/iframe>)/", '', $content);
echo $content;
?>
Я получаю это предупреждение в теме проверки:
WARNING: Found echo $ in the file single.php. Possible data validation issues found. All dynamic data must be correctly escaped for the context where it is rendered.
Line 34: echo $first_embedded;
Line 76: echo $content;
Как я могу правильно избежать этих переменных?
Я пробовал с:
<?php esc_html( $first_embedded); ?>
Но он просто печатает код HTML <iframe>...</iframe>
моего встроенного видео, как если бы это была простая текстовая строка.
То же самое, если я сделаю это на $content
:
<?php esc_html( $content); ?>
Я новичок. Проблема в том, что мне нужны эти две переменные, потому что первая показывает видео в случае, если формат записи относится к типу видео, и заменяет миниатюру записи после первого встроенного видео.
Вторая функция также необходима для того, чтобы не показывать это видео в содержании поста.