Le nouveau widget de texte enrichi fourni avec la mise à jour 4.8 semble ajouter un filtre au contenu du widget avant la sortie des données (probablement the_content
).
Je viens de remarquer que si j'utilise un shortcode dans le nouveau widget de texte, cela gâchera tout (par exemple, cela remplacera la lettre X
par ×
, qui est l'équivalent HTML de la marque ×
, ajoutera un <p>
aléatoire, etc.). . Le filtre est ajouté à la table wp_options
sous widget_text
, comme ceci:
a:2:{
i:2;
a:3:{
s:5:"title";
s:6:"Sample";
s:4:"text";
s:14:"[shortcode-here]";
s:6:"filter";
s:7:"content";
}
s:12:"_multiwidget";
i:1;
}
Maintenant, si je remplace les 5ème et 6ème valeurs par ceci:
s:1:" ";
s:1:" ";
Le filtre n'est plus appliqué. Si vous avez déjà ajouté un widget texte avant la mise à jour vers la version 4.8, il n'y aura pas de problème. Mais au moment où vous cliquez sur Save
sur le widget après avoir mis à jour la version 4.8, le problème apparaît.
Je ne veux pas désactiver complètement le filtre, car il pourrait y avoir d'autres widgets de texte sur la page.
Est-il possible de détecter les codes abrégés et de désactiver le filtre?
Nous avons maintenant un nouveau filtre widget_text_content
introduit dans 4.8 src, avec les rappels par défaut suivants:
add_filter( 'widget_text_content', 'capital_P_dangit', 11 );
add_filter( 'widget_text_content', 'wptexturize' );
add_filter( 'widget_text_content', 'convert_smilies', 20 );
add_filter( 'widget_text_content', 'wpautop' );
qui sont appliqués si les paramètres filter , pour l'instance de widget, sont définis sur 'content'
.
Lorsque vous supprimez manuellement les paramètres de filtre de la table wp_options
, il semble être réinitialisé lors de la méthode de mise à jour. src.
Voir le billet de train # 35243 pour plus d’informations.