J'essaie d'insérer une publication avec html tag
avec l'attribut class
, comme ceci: <dl class="dl-horizontal">
, mais après avoir enregistré la publication, WP supprime un attribut.
Comment puis-je résoudre ce problème?
Le seul moyen que j’ai trouvé est de faire un shortcode
:
add_shortcode('attr', 'html_attr');
function html_attr( $atts, $content = null ){
extract( shortcode_atts( array(
'tag' =>"",
'attr'=>""
), $atts ) );
return "<" . $tag . " " . $attr . " >";
}
Mais je ne pense pas que ce soit une bonne façon ...
Veuillez regarder le plugin TinyMCE Advanced.
http://wordpress.org/extend/plugins/tinymce-advanced/
Vous pouvez le configurer pour laisser certaines balises seules. c'est vraiment utile.
J'ai eu ce problème lors de l'exécution multi-site et l'utilisateur était seulement un administrateur du site. En tant que super-administrateur, je pourrais mettre tous les attributs HTML que je voulais. Je suis sûr que la solution à long terme ne consiste pas à élever leurs privilèges, mais cela pourrait être un endroit pour commencer à chercher des solutions.
@jochem, je suis allé dans la voie de faire les changements tinymce, mais cela ne semble pas source d'effet d'édition.
Si quelqu'un a trouvé une meilleure solution, il serait utile de l'afficher.
Assurez-vous de rester en mode HTML dans l'éditeur de texte. Parfois, revenir en arrière et apporter des modifications en mode visuel peut écraser des éléments HTML.
Peut-être que c'est Kses qui l'enlève.
Essaye ça
function allow_dl_class_content() {
global $allowedposttags, $allowedtags;
$newattribute = "class";
$allowedposttags["dl"][$newattribute] = true;
$allowedtags["dl"][$newattribute] = true;
}
add_action( 'init', 'allow_dl_class_content' );