¿Es posible evitar que WordPress agregue clases p1, p2 … a etiquetas p en TinyMCE?

Pregunta:

He notado la primera vez hoy que WP agrega nombres de clases numerados (p1, p2…) a mis etiquetas p.

Tengo la siguiente parte relacionada con el init de TinyMCE en functions.php.

function my_mce( $init ) {
    $init['block_formats'] = "Paragraph=p; Heading 3=h3; Heading 4=h4";

    $style_formats = array(
        array(
            'title' => 'Link',
            'selector' => 'a',
            'classes' => 'link'
        )
    );
    $init['style_formats'] = json_encode( $style_formats );
    return $init;
}
add_filter('tiny_mce_before_init', 'my_mce');

En mi php, un fragmento de ejemplo (usando el campo de opciones ACF) se ve así:

  <div class="dataprivacy__feature">
    <h3 class="lat-bn">Google Analytics</h3>
    <?php the_field('op-dataprivacy-analytics', 'option'); ?>
  </div>

La etiqueta p generada obtiene la clase p1:

<div class="dataprivacy__feature">
    <h3 class="lat-bn">Google Analytics</h3>
    <p class="p1">Privacy statement</p>
    <p class="p1 link">More <a title="Google Privacy" href="http://www.google.de/intl/de/privacy/" target="_blank">infos</a>.</p>
  </div>

¿Es posible prevenir eso?

Respuesta:

Descubrí cómo eliminar esas clases usando la opción paste_preprocess de TinyMCE.

En su functions.php :

add_filter('tiny_mce_before_init', 'customize_tinymce');

function customize_tinymce($in) {
  $in['paste_preprocess'] = "function(pl,o){ o.content = o.content.replace(/p class=\"p[0-9]+\"/g,'p'); o.content = o.content.replace(/span class=\"s[0-9]+\"/g,'span'); }";
  return $in;
}

El valor pasado a paste_preprocess es una función de JavaScript que se ejecutará siempre que se pegue contenido en TinyMCE. La función utiliza una expresión regular para eliminar instancias de, por ejemplo, class="p1" y class="s1" en las etiquetas p span .

Tenga en cuenta que esto es para WordPress 4.x, que usa TinyMCE 4.

Todavía me encantaría saber dónde se originan esas clases. Es extraño que varias aplicaciones agreguen exactamente las mismas clases a las etiquetas HTML …

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım