remove_filter( 'the_content', 'wpautop' ); solo para ciertos tipos de entrada
Quiero intentar eliminar la adición automática de etiquetas <p>
y <br>
para mi tipo de entrada personalizado.
Parece que
remove_filter( 'the_content', 'wpautop' );
hará esto, pero ¿cómo podría hacer el cambio solo para mi tipo de entrada elegido? He intentado escribir una función para esto, pero parece que no funciona:
function remove_tags() {
global $post_type;
if ( 'client' == $post_type ) {
remove_filter( 'the_content', 'wpautop' );
}
}

Engancha el filtro the_content
antes de que se llame al filtro wpautop
, verifica el tipo de publicación y elimina el filtro wpautop
, el cual es agregado en wp-includes/default-filters.php
con la prioridad por defecto 10
:
add_filter( 'the_content', 'wpse_82860_remove_autop_for_posttype', 0 );
function wpse_82860_remove_autop_for_posttype( $content )
{
# edita el tipo de publicación aquí
'post' === get_post_type() && remove_filter( 'the_content', 'wpautop' );
return $content;
}

Después de años, todavía tengo problemas para entender el manejo de priority
en los filtros de WP. ¿No significa 0
que se llama primero y después se llama el wpauto
predeterminado con su priority
de 10
y vuelve a poner los <p>
?

@VolkerE. wpautop
no se llama más, porque se ha desregistrado anteriormente.

remove_filter('the_content','wpautop');
//decidir cuándo aplicar el párrafo automático
add_filter('the_content','my_custom_formatting');
function my_custom_formatting($content){
if(get_post_type()=='my_custom_post') //si no funciona, podrías necesitar pasar el objeto del post actual a get_post_type
return $content;//sin autop
else
return wpautop($content);
}
encontré este código en stackoverflow - parece que hace el truco.

+1 por encontrar tu propia respuesta :) Sin embargo, por favor publica la URL de la pregunta donde encontraste el código.

el original se puede encontrar aquí http://stackoverflow.com/questions/7697465/wordpress-remove-auto-generated-paragraphs-for-speciffic-custom-post-type
