Chaque fois que je poste du contenu sur une page de publication WordPress, certaines balises de paragraphe telles que <p>
et <br/>
sont affichées. Ce qui montre un espace supplémentaire dans la sortie. Alors, y a-t-il une solution pour cela? Comment supprimer tous les tags?
Cela se produit à cause de wpautop
de WordPress. Ajoutez simplement la ligne de code ci-dessous dans le fichier functions.php de votre thème
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
Pour plus d'informations: http://codex.wordpress.org/Function_Reference/wpautop
La suppression du filtre wpautop
n'est pas la solution la plus flexible . Si vous recherchez une solution page par page ou poste par poste, vous pouvez utiliser ce plugin:
https://wordpress.org/plugins/dont-muck-my-markup/
Il ajoutera une case à cocher sur chaque publication/page pour que vous choisissiez si le comportement principal de Wordpress sera désactivé ou non pour cette page particulière.
Ceci est particulièrement utile lorsque vous souhaitez publier du code HTML et que les <br>
et <p>
générés automatiquement gâchent votre conception soigneusement conçue.
Le plug-in a également une option globale, ce qui vous permet de désactiver ce comportement par défaut sur toutes les pages/publications.
Un autre plug-in est https://wordpress.org/plugins/preserve-code-formatting/ mais je n’ai essayé que celui que j’ai décrit.
essaye ça
$my_postid = $post->ID;
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = strip_tags($content, '<p><br/>');
echo $content;
Utilisez ce code pour supprimer<p></p>
avant l’initialisation de l’éditeur.
function tinymce_remove_root_block_tag( $init ) {
$init['forced_root_block'] = false;
return $init;
}
add_filter( 'tiny_mce_before_init', 'tinymce_remove_root_block_tag' );
Parfois, la suppression de la fonction wpautop de WordPress dans le fichier functions.php de votre thème ne fonctionne pas (pour certaines raisons).
J'ai donc une autre solution, comment arrêter de supprimer les balises <br>
ou les doubles sauts de ligne (<br><br>
).
/wp-content/themes/your_theme_name/functions.php
Ajoutez 2 lignes en haut de vos fonctions.
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
Cela désactivera initialement la fonction wpautopop
.
Apportez des modifications dans le fichier /wp-includes/formatting.php
dans la fonction wpautop
.
A) Remplacez function wpautop( $pee, $br = true)
par function wpautop( $pee, $br = false)
.
Cela désactivera également la fonction wpautopop
de tous les endroits.
B) Remplacez $pee = preg_replace('|<br\s*/?>\s*<br\s*/?>|', "\n\n", $pee);
par
$pee1 = $pee;
$pee = preg_replace('|<br\s*/?>\s*<br\s*/?>|', "\n\n", $pee);
$pee = $pee1;
Cela empêchera le système de supprimer les étiquettes doubles <br>
. (Je sais que le code est étrange mais simple //$pee
n'aide pas ici à cause de la balise ?>
).
C) Remplacez $pee = preg_replace("/\n\n+/", "\n\n", $pee);
par //$pee = preg_replace("/\n\n+/", "\n\n", $pee);
Cela empêchera le système de supprimer plusieurs sauts de ligne.
D) Changer ceci:
$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
pour que:
//$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
Cela empêchera le système de supprimer les sauts de ligne après l'ouverture ou avant la balise d'élément de bloc de fermeture, telle que <div>
, <article>
, etc.
E) Changer ceci:
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
pour que:
//$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
Presque pareil: Ceci empêchera le système de supprimer les sauts de ligne après l’ouverture ou avant la balise d’élément de bloc de fermeture, telle que <div>
, <article>
, etc.
F) Changer ceci:
$pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
pour que:
// $pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
Cela empêchera le système de supprimer <br>
à la fin du bloc.
G) Changer ceci:
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);
pour que:
//$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);
Cela empêchera le système de supprimer <br>
après une balise de bloc en ouverture ou en fermeture.
J'espère que ça va aider! Et lisez les commentaires dans ce fichier - ils vous aideront à comprendre ce que vous devez activer ou désactiver.
Par défaut, WordPress ajoute des balises de paragraphe <p></p>
aux descriptions de catégorie. Arrêtez cela en ajoutant ce qui suit à votre functions.php file
// Remove p tags from category description
remove_filter('term_description','wpautop');
Simple et facile (sans code).
Je vous remercie
utilisez ceci $ editor = wp_filter_nohtml_kses ($ _ POST ['editor1']);
La réponse acceptée ne fonctionnant pas pour moi dans WP 4.8.1, je vous propose une solution de contournement qui a fonctionné pour moi. Il me suffisait d'ajouter une classe au p et WordPress ne l'enlèverait pas.
<p class="whatever">