Использование preg_replace для удаления видео iframe не работает - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь отделить изображения и видео (vimeo) от текстового содержимого моего сообщения в проекте WordPress, используя preg_replace.Отфильтровываются только изображения, но не видео iframe.

<div class="post_text">
    <?php
    $content = get_the_content();
    $content = preg_replace('/<img[^>]+\>/i', '', $content);
    $content = preg_replace('/<iframe[^>]+>.*?<\/iframe>/', '', $content);
    $content = apply_filters('the_content', $content);
    echo $content;
    ?>
  </div>

Код iframe для замены (не работает):

<iframe src="https://player.vimeo.com/video/261467359?app_id=122963" width="500" height="281" frameborder="0" title="Mind your Step" allow="autoplay; fullscreen" allowfullscreen></iframe>

Код изображения для замены (работает):

<img src="http://localhost:8888/wp-content/uploads/2019/01/2018_Ichni_NiakaOngChrapana_4-1024x682.jpg" alt="" class="wp-image-15" srcset="http://localhost:8888/wp-content/uploads/2019/01/2018_Ichni_NiakaOngChrapana_4-1024x682.jpg 1024w, http://localhost:8888/wp-content/uploads/2019/01/2018_Ichni_NiakaOngChrapana_4-300x200.jpg 300w, http://localhost:8888/wp-content/uploads/2019/01/2018_Ichni_NiakaOngChrapana_4-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" />

I 'мы проверили регулярное выражение, используя живой веб-сайт регулярного выражения, и оно работает;он просто не работает, когда реализован в коде WordPress.Видео по-прежнему отображается как обычно.И странно, что он отлично работает, чтобы отфильтровать все изображения.

1 Ответ

0 голосов
/ 23 января 2019

Простое удаление разделителя будет работать.

$content = preg_replace('<iframe[^>]+>.*?<\/iframe>', '', $content);
...