remove_filter( 'the_content', 'wpautop' ); solo per determinati tipi di post
Voglio provare a rimuovere l'aggiunta automatica dei tag <p>
e <br>
per il mio tipo di post personalizzato.
Sembra che
remove_filter( 'the_content', 'wpautop' );
faccia questo, ma come posso applicare la modifica solo per il mio tipo di post scelto? Ho provato a scrivere una funzione per questo, ma non sembra funzionare:
function remove_tags() {
global $post_type;
if ( 'client' == $post_type ) {
remove_filter( 'the_content', 'wpautop' );
}
}

Agganciati a the_content
prima che il filtro wpautop
venga chiamato, controlla il tipo di post e rimuovi il filtro wpautop
, che viene aggiunto in wp-includes/default-filters.php
con la priorità predefinita 10
:
add_filter( 'the_content', 'wpse_82860_remove_autop_for_posttype', 0 );
function wpse_82860_remove_autop_for_posttype( $content )
{
# modifica qui il tipo di post
'post' === get_post_type() && remove_filter( 'the_content', 'wpautop' );
return $content;
}

Dopo anni, ho ancora problemi a capire la gestione della priority
dei filtri in WP. 0
non significa che viene chiamato per primo e poi il default wpauto
viene chiamato con la sua priority
di 10
e reinserisce i <p>
?

@VolkerE. wpautop
non viene più chiamato, perché è stato deregistrato in precedenza.

// Rimuove il filtro di formattazione automatica dei paragrafi predefinito di WordPress
remove_filter('the_content','wpautop');
// Aggiunge un filtro personalizzato per decidere quando applicare i paragrafi automatici
add_filter('the_content','my_custom_formatting');
/**
* Funzione personalizzata per la formattazione del contenuto
* @param string $content Il contenuto da formattare
* @return string Contenuto formattato
*/
function my_custom_formatting($content){
// Verifica se il post corrente è di un tipo personalizzato
if(get_post_type()=='my_custom_post') // Se non funziona, prova a passare l'oggetto post corrente a get_post_type
return $content; // Non applica la formattazione automatica
else
return wpautop($content); // Applica la formattazione automatica dei paragrafi
}
Trovato questo codice su StackOverflow - sembra fare al caso nostro.

+1 per aver trovato la tua risposta :) Per favore, pubblica anche l'URL della domanda dove hai trovato il codice.

l'originale si trova qui http://stackoverflow.com/questions/7697465/wordpress-remove-auto-generated-paragraphs-for-speciffic-custom-post-type
