Remover o wpautop de todas as postagens / páginas, exceto meu tipo de postagem personalizado

4

Todo o meu tema usa remove_filter( 'the_content', 'wpautop' ); , que retira as tags p e as quebras de linha da saída do WYSIWYG. Eu tenho um tipo de postagem personalizada events que eu gostaria de trazer de volta as tags auto p e as tags br, mas apenas no tipo de postagem personalizada. Existe uma maneira de garantir que o filtro não seja removido em events .

    
por Taylor Foster 23.02.2017 / 19:49

2 respostas

2

Você pode realizar um teste condicional com relação ao tipo de postagem atual, assim:

if ( 'events' != get_post_type() ) {
    remove_filter( 'the_content', 'wpautop' );
}
    
por Manu 23.02.2017 / 20:51
2

A resposta de @Manu provavelmente funcionará para você, mas falhará se você tiver uma consulta com eventos e postagens como o post_type. Ou duas consultas diferentes na mesma página. A solução é verificar se cada postagem é do tipo de evento e adicionar ou remover o filtro de acordo.

add_action( 'the_post', 'wpse_257708_the_post', 10, 1 );
function wpse_257708_the_post( $post ) {
  if( 'events' === $post->post_type ) {
    add_filter( 'the_content', 'wpautop' );
  } else {
    remove_filter( 'the_content', 'wpautop' );
  }
}
    
por Nathan Johnson 23.02.2017 / 21:15