Disabilitiamo la formattazione automatica di WordPress

Formattazione Automatica Wordpress

Libro Questo sito funziona

Se segui questo Blog, oltre ad esserti accorto che non scrivo post tutti i giorni (perchè non mi ritengo un giornalista blogger e soprattutto non ho dei ragazzi che mi scrivono 5 post al giorno spacciandoli per miei), ti sarai sicuramente accorto che mi piace condividere le mie esperienze lavorative REALI. Questa è l’ennesima condivisione che faccio con tutti voi! 🙂

Se utilizzi WordPress ti sarai sicuramente reso conto, specie se lo utilizzi via visuale, che WordPress interpreta ogni “invio” con un paragrafo <p> html. Stessa cosa per le interruzioni di riga.

Si chiama: Formattazione Automatica WordPress.

Questa particolarità di WordPress, spesso elude o comunuqe ostacola alcune funzioni speciali dei Temi come gli shortcode che sebbene possano essare progettati con dei paragrafi <p> spesso, spessissimo direi vengono realizzati a mio modo di vedere e di farli, giustamente, con dei tag <div>.

Quindi nascerebbe il contrasto del <DIV> che viene nidificato in un <P> che farà generare irrimediabilmente un <BR> indesiderato.

Ovviamente questo comporta che la nidificazione di alcuni shortcode possa divenire problematica e qualcuno potrebbe anche strapparsi i capelli dal nervoso. 🙂

La funzione della formattazione automatica verrà eseguita anche se hai disabilitato l’editor Visuale, perché non fa parte dell’editor Visuale TinyMCE utilizzato da WordPress.

Infatti, è realizzato tramite una funzione core di WordPress chiamata Wpautop che viene eseguito prima del contenuto visualizzato sul frontend.

In questo modo è possibile bypassare questa funzione utilizzando la funzione speciale remove_filter nel file function.php del tuo tema.

Se vuoi applicare questo filtro a tutto il contenuto pubblicato da WordPress al pubblico ti basta inserire:

remove_filter('the_content', 'wpautop');

Tuttavia gli assolutismi si sà che li detesto e volendo fare le cose decentemente SAPPIAMO che come nella scheda della scuola guida quando c’è scritto sempre e mai al 90% la risposta è falsa. E’ cosi anche in questo caso. Non potendo prevedere a priori come si compoterà il filtro in un blog che ha già degli articoli possiamo decidere di attivare o meno questa rimozione di filtro wpautop solo quando lo decidiamo noi e per il post che decidiamo noi.

In questo ci vengono in aiuto i custom field.
I campi personalizzati di WordPress.

In poche parole diciamo a WordPress: se c’è il campo personalizzato di nome “noformat” ed è settato a 1 rimuovi la formattazione automatica per quel post

function Rimuovi_formattazione($content) {
    // recupero l'oggetto del post
    global $post;
    // se il campo personalizzato noformat è uguale a 1 allora rimuovi la formattazione automatica
    //ovviamente applichiamo tutto a the_content che è la funzione che mostra tutto il contenuto del post
    if(get_post_meta($post->ID, 'noformat', true) == 1) {
        remove_filter('the_content', 'wpautop');
    } 
    return $content;	
}
add_filter( "the_content", "WP_auto_formatting", 1 );

In questo modo c’è più controllo sul contenuto pubblicato!

 

Aggiornamento del post: Metodo alternativo.

Googlando un pò ho trovato un’ottima soluzione alternativa alla precedente che è questa:

function filtro_shortcodes($content){   
$array = array (
    '<p>[' => '[', 
    ']</p>' => ']', 
    ']<br />' => ']'
);
$content = strtr($content, $array);
return $content;
}
add_filter('the_content', 'filtro_shortcodes');

Praticamente va ad eliminare prima ancora che venga stampato l’auto paragrafazione di WordPress. Funziona ed è molto snello.

 

Libro Questo Sito Funziona