Как настроить Wordpress для использования тега <script> внутри постов?

8

Я ищу решение, которое позволило бы мне писать теги внутри сообщений и быть уверенным, что визуальный редактор или WordPress не изменит их.

Та же проблема может применяться к другому конкретному HTML-коду, который я могу захотеть использовать.

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

Сорин
источник

Ответы:

6

Добавьте следующее в вашу тему functions.php:

function fb_change_mce_options($initArray) {
    $ext = 'script[charset|defer|language|src|type]';

    if ( isset( $initArray['extended_valid_elements'] ) ) {
        $initArray['extended_valid_elements'] .= ',' . $ext;
    } else {
        $initArray['extended_valid_elements'] = $ext;
    }

    return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');
sorich87
источник
3

Я попробовал принятый ответ выше, и он не работал для меня на WordPress 3.5.1

Я заглянул внутрь wp-includes / kses.php и там было сказано использовать фильтр 'wp_kses_allowed_html'. Это сработало для меня. Атрибуты высоты и ширины можно заменить любыми другими атрибутами тега сценария, такими как тип, язык и т. Д., В зависимости от тега, который вы пытаетесь вставить.

function allow_script_tags( $allowedposttags ){
  $allowedposttags['script'] = array(
      'src' => true,
      'height' => true,
      'width' => true,
    );
  return $allowedposttags;
}

add_filter('wp_kses_allowed_html','allow_script_tags', 1);
Энтони Р.
источник