Comment configurer Wordpress pour pouvoir utiliser la balise <script> à l'intérieur des publications?

8

Je suis à la recherche d'une solution qui me permettrait d'écrire des balises à l'intérieur des messages et d'être sûr que l'éditeur visuel ou wordpress ne les modifierait pas.

Le même problème peut s'appliquer à d'autres codes HTML spécifiques que je souhaiterais peut-être utiliser.

La désactivation de l'éditeur visuel n'est pas une option, car en rendra la plupart des opérations d'édition trop difficiles à utiliser.

Sorin
la source

Réponses:

6

Ajoutez ce qui suit à votre thème 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
la source
3

J'ai essayé la réponse acceptée ci-dessus et cela n'a pas fonctionné pour moi sur WordPress 3.5.1

J'ai regardé à l'intérieur de wp-includes / kses.php et il m'a dit d'utiliser le filtre 'wp_kses_allowed_html'. Cela a fini par travailler pour moi. Vous pouvez remplacer les attributs de hauteur et de largeur par tout autre attribut de balise de script tel que le type, la langue, etc., selon la balise que vous essayez d'insérer.

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);
Anthony R.
la source