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>?
Volker E.
@VolkerE. wpautop non viene più chiamato, perché è stato deregistrato in precedenza.
fuxia
// 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.
s_ha_dum
l'originale si trova qui http://stackoverflow.com/questions/7697465/wordpress-remove-auto-generated-paragraphs-for-speciffic-custom-post-type
user319940