Empecher WordPress d’ajouter des tags « p » et « br » au post
Posted by admin on mar 14, 2012 in Wordpress | 0 comments
Vous souhaitez créer une page qui affiche du contenu brûte? Type XML par exemple?
Voici la solution pour que wordpress arrete de décorer votre texte avec des balises <p> et <br />.
Le responsable est la fonction wpautop(). A lui s’ajoute wptexturize() qui lui convertit certaines entités texte en entités HTML
Il suffit de désactiver ces deux filtres qui sont appliqués par défaut dans « wp-includes/default-filters.php ». Si vous souhaitez le désactiver uniquement dans un template utilisez ces fonctions :
remove_filter( ‘the_content’, ‘wpautop’);
remove_filter( ‘the_content’, ‘wptexturize’);
Il est important d’utiliser la fonction get_the_content() et pas the_content() car si votre XML utilise la balise CDATA votre XML sera corrompu à cause de cette ligne qui se trouve dans la fonction the_content():
$content = str_replace(‘]]>’, ‘]]>’, $content);
Voici un exemple de template wordpress spécialement concu pour traiter le XML :
<?php<?php /** * @author samuel.mamet@gmail.com */ /* Template Name: XML Document */ // Suppression du filtre qui ajoute des <p> et <br /> intenpestif. remove_filter( 'the_content', 'wpautop'); // Convertit certains caractères après certaines balises. ex : --> devient –> remove_filter( 'the_content', 'wptexturize'); header('Content-type: text/xml'); echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; the_post(); echo get_the_content(); ?>
