web-dev-qa-db-fra.com

Supprimer wpautop de tous les articles/pages sauf mon type d'article personnalisé

Mon thème entier utilise remove_filter( 'the_content', 'wpautop' ); qui supprime les balises p et les sauts de lignes de la sortie du WYSIWYG. J'ai un type de message personnalisé events pour lequel je voudrais ramener les balises p automatique et les balises br, mais JUSTE sur ce type de message personnalisé. Existe-t-il un moyen de s’assurer que ce filtre n’est pas supprimé sur events.

3
Taylor Foster

Vous pouvez effectuer un test conditionnel sur le type de publication actuel, comme suit:

if ( 'events' != get_post_type() ) {
    remove_filter( 'the_content', 'wpautop' );
}
2
Manu

La réponse de @Manu fonctionnera probablement pour vous, mais elle échouera si vous avez une requête avec des événements et des publications en tant que post_type. Ou deux requêtes différentes sur la même page. La solution consiste à vérifier si chaque publication est du type événements et à ajouter ou supprimer le filtre en conséquence.

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' );
  }
}
1
Nathan Johnson