Adicione a classe post ao iframe do TinyMCE?

4

Eu quero adicionar estilos a editor-style.css , com base na categoria à qual a postagem atual pertence.

Portanto, gostaria de adicionar as classes de postagem - usando get_post_class() - ao corpo do iframe do TinyMCE.

Eu vi essa questão , mas é sobre adicionar classes via JavaScript, e eu preciso que isso seja feito via PHP para que eu possa usar get_post_class() . Também não posso usar o filtro admin_body_class , porque isso não resolve o iframe do TinyMCE.

Como posso adicionar as classes da postagem ao iframe do TinyMCE?

    
por Lea Cohen 07.08.2016 / 00:15

1 resposta

2

O filtro que você está procurando é tiny_mce_before_init . Usando isso, podemos nos conectar ao 'init_array' do TinyMCE e adicionar classes de corpo:

add_filter( 'tiny_mce_before_init', 'wpse_235194_tiny_mce_classes' );

function wpse_235194_tiny_mce_classes( $init_array ){

  global $post;

  if( is_a( $post, 'WP_Post' ) ){
    $init_array['body_class'] .= ' ' . join( ' ', get_post_class( '', $post->ID ) );
  }

  return $init_array;

}

Estamos entrando nas classes de postagens com um espaço para convertê-las de uma matriz em uma string, conforme exigido pelo TinyMCE, e também verificando se realmente temos um objeto post válido, para evitar erros se você estiver usando o TinyMCE em outro lugar (como em widgets ou similares).

    
por Tim Malone 07.08.2016 / 00:51