Как сделть, чтобы Вордпресс не удалял iframe из описания рубрик?

Ссылка скопирована
1 ответ

Как сделать так, чтобы Вордпресс не удалял теги iframe из описания рубрик при сохранении изменений?

Например, если надо добавить видео с ютуб или другого сервиса в описание рубрики. При сохранении движок удаляет тег iframe.

Может есть какой-то код для добавления в function.php для решения этой проблемы?

Дополнительно:

Из гугла

  • Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
    См.п.3.1 Регламента.
  • https://wordpress.org/plugins/allow-html-in-catego...
    https://wordpress.org/plugins/visual-term-descript...
    и тд
  • WordPress часто удаляет определенные теги HTML, такие как теги , в целях безопасности и во избежание потенциальных проблем с отображением. Однако, если вы хотите разрешить вставку тегов в описания категорий, вы можете сделать это с помощью фильтра в файле functions.php вашей темы. Вот пример того, как это сделать:

    function permitir_iframes_en_descripciones_de_categoria( $allowedposttags ) {     $allowedposttags['iframe'] = array(         'src' => array(),         'width' => array(),         'height' => array(),         'frameborder' => array(),         'allowfullscreen' => array(),     );      return $allowedposttags; } add_filter( 'wp_kses_allowed_html', 'permitir_iframes_en_descripciones_de_categoria', 10, 1 );

    function permitir_iframes_en_descripciones_de_categoria( $allowedposttags ) { $allowedposttags['iframe'] = array( 'src' => array(), 'width' => array(), 'height' => array(), 'frameborder' => array(), 'allowfullscreen' => array(), ); return $allowedposttags; } add_filter( 'wp_kses_allowed_html', 'permitir_iframes_en_descripciones_de_categoria', 10, 1 );

    Приведенный выше код изменяет массив тегов HTML, разрешенных фильтром wp_kses_allowed_html, чтобы включить тег с его разрешенными атрибутами. Это позволит тегам сохраняться в описаниях категорий при сохранении изменений.

    Обязательно добавьте этот код в файл functions.php вашей активной темы. Однако обратите внимание, что использование тегов в описаниях категорий может иметь последствия для безопасности, поэтому убедитесь, что вы доверяете источникам кода, в которые встроены iframe, и понимаете потенциальные связанные с этим риски.

    Не забудьте сделать резервную копию своего сайта, прежде чем вносить какие-либо изменения в файл functions.php, и, если возможно, выполните эти тесты в среде разработки, прежде чем применять их к вашему работающему сайту.

    • ЧатЖПТ?
    • Refguser, ага)
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Сергей Миронов Ответ

    WordPress удаляет iframe из описаний рубрик из-за KSES-фильтрации HTML. Это защита от XSS, поэтому просто разрешать любые iframe всем пользователям опасно. Правильнее разрешить только нужные атрибуты и, по возможности, только доверенные домены вроде YouTube/Vimeo.

    Минимальный вариант для администраторов можно добавить в дочернюю тему или site-specific plugin:

    add_filter('wp_kses_allowed_html', function ($tags, $context) {
        if ($context !== 'post') {
            return $tags;
        }
     
        if (! current_user_can('unfiltered_html')) {
            return $tags;
        }
     
        $tags['iframe'] = [
            'src'             => true,
            'width'           => true,
            'height'          => true,
            'frameborder'     => true,
            'allow'           => true,
            'allowfullscreen' => true,
            'loading'         => true,
            'referrerpolicy'  => true,
            'title'           => true,
        ];
     
        return $tags;
    }, 10, 2);

    add_filter('wp_kses_allowed_html', function ($tags, $context) { if ($context !== 'post') { return $tags; } if (! current_user_can('unfiltered_html')) { return $tags; } $tags['iframe'] = [ 'src' => true, 'width' => true, 'height' => true, 'frameborder' => true, 'allow' => true, 'allowfullscreen' => true, 'loading' => true, 'referrerpolicy' => true, 'title' => true, ]; return $tags; }, 10, 2);

    После этого проверьте сохранение описания рубрики именно под пользователем с правами администратора. Если сайт мультисайтовый, право unfiltered_html может быть ограничено даже для админа сайта.

    Более безопасный путь — не хранить iframe в описании рубрики, а хранить URL видео в ACF/term meta и выводить embed через wp_oembed_get() в шаблоне рубрики. Тогда редактор не хранит произвольный HTML, а вы контролируете вывод.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно