Je sais qu'il est facile de désactiver Wordpress en ajoutant les balises p
et br
avec:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
mais je veux que Wordpress continue à ajouter <br>
où il y a un saut de ligne. Je n'utilise que l'éditeur de texte, l'éditeur visuel est désactivé. Cela fonctionnait bien jusqu'à la dernière mise à jour de Wordpress 4.7 - maintenant, il ajoute des balises p
de fermeture, sans les ouvrir comme </p>
.
même essayé this plugin mais cela désactive aussi les balises br.
Tout moyen de désactiver les balises p
et non les balises br
dans le contenu du message? Je ne trouve rien sur Internet qui dise quelque chose à propos d'une solution.
Vous feriez mieux de ne jamais désactiver ces actions (ce que vous dites). Au lieu de cela, insérez add_filter('the_content', 'MyFilter', 88 );
et créez cette fonction:
function MyFilter($content){
$tags = array( 'p', 'span');
///////////////////////////////////////////////////
///////// HERE INSERT ANY OF BELOW CODE //////////
///////////////////////////////////////////////////
return $content;
}
$content= preg_replace( '#<(' . implode( '|', $tags) . ')(.*|)?>#si', '', $content);
$content= preg_replace( '#<\/(' . implode( '|', $tags) . ')>#si', '', $content);
foreach ($tags as $tag) {
$content= preg_replace('#<\s*' . $tag . '[^>]*>.*?<\s*/\s*'. $tag . '>#msi', '', $content);
}
DOMobjet (préféré): https://stackoverflow.com/a/31380542/2377343
Le filtre "the_content" est utilisé pour filtrer le contenu de la publication où la fonction de filtrage dans your_prefix_ptagfix
force la recherche des balises <p>
avant et après les balises ouvrantes des codes courts.
Ajoutez le code suivant à votre fichier de fonctions et faites-moi savoir si cela vous aidera.
add_action( 'after_setup_theme', 'your_prefix_theme_setup' );
function your_prefix_theme_setup(){
add_filter( 'the_content', 'your_prefix_ptagfix' );
}
function your_prefix_ptagfix($content){
$array = array (
'<p>[' => '[',
']</p>' => ']',
);
$content = strtr($content, $array);
return $content;
}