Hé les gars, je veux simplement empêcher la création de paragraphes vides dans mon post wordpress. Cela arrive assez souvent lorsque vous essayez d'espacer manuellement le contenu.
Je ne sais pas pourquoi cela ne prend pas effet
/*Remove empty paragraph tags from the_content*/
function removeEmptyParagraphs($content) {
/*$pattern = "/<p[^>]*><\\/p[^>]*>/";
$content = preg_replace($pattern, '', $content);*/
$content = str_replace("<p></p>","",$content);
return $content;
}
add_filter('the_content', 'removeEmptyParagraphs');
éditer / mettre à jour:
semble que le problème est le suivant:
function qanda($content) {
// filters for [q=some question] and [a=some answer]
// wraps it inside of <div class="qanda"><div class="question"> </div><div class="answer"> </div></div>
$content = preg_replace('/\[q=(.+?)].+?\[a=(.+?)]/is', '<div class="qanda"><div class="question">$1</div><div class="answer">$2</div></div>', $content);
return $content;
}
add_filter('the_content', 'qanda');
J'ai fait cette fonction moi-même pour filtrer une sorte de modèle de shortcode dans mes publications et mes pages. Même si dans mon backend, le post est complètement fait sans paragraphes et espacements inutiles, le résultat est le suivant:
<div class="entry">
<p></p>
<div class="qanda">...</div>
<p></p>
<p></p>
<div class="qanda">...</div>
<p></p>
<p></p>
<div class="qanda">...</div>
</div>
aucune idée d'où viennent ces p vides?
wpautop
de commencer, par exemple.add_filter('the_content', 'qanda', 7 );
..Réponses:
WordPress insère automatiquement
<p>
et</p>
balises qui séparent les pauses contenu dans un article ou une page. Si, pour une raison quelconque, vous souhaitez ou devez les supprimer, vous pouvez utiliser l'un des fragments de code suivants.Pour désactiver complètement le filtre wpautop, vous pouvez utiliser:
Si vous voulez toujours que cela fonctionne, essayez d'ajouter une valeur de priorité ultérieure à votre filtre, par exemple:
la source
J'ai eu le même problème que vous avez. Je viens de faire une ... disons ... pas très belle solution, mais cela fonctionne et jusqu'à présent, c'est la seule solution que j'ai. J'ai ajouté une petite ligne JavaScript. Il a besoin de jQuery, mais je suis sûr que vous pouvez le résoudre sans.
Ceci est mon petit JS:
Cela fonctionne pour moi!
la source
p:empty { display:none; }
<p></p>
mais ne fonctionne pas pour<p>\n</p>
.Je sais que cela est déjà marqué comme "résolu", mais juste pour référence, voici une fonction qui fait exactement ce que vous voulez sans avoir à ajouter de balises aux publications. Il suffit de mettre ceci dans le functions.php de votre thème:
Ceci est de cet élément essentiel: https://gist.github.com/1668216
la source
force_balance_tags
quand il rencontre le<
personnage dans certaines situations. Voir le billet [9270] ( core.trac.wordpress.org/ticket/9270 ) pour plus de détails.Il suffit d'utiliser CSS
la source
dans la balise <p> cela ne fonctionnera pas.Vous pouvez simplement lancer votre filtre avant qu'il ne
wpautop
s'accroche mal avec le balisage.De cette façon, vous avez déjà converti ce dont vous avez besoin au moment de l’accrochage, ce qui aide dans certains cas.
la source
Même approche que 2 réponses avant moi, mais une regex mise à jour, car sa ne fonctionnait pas pour moi.
the regex:
/<p>(?:\s| )*?<\/p>/i
(groupe non capturé recherchant un nombre quelconque d'espaces ou de
s dans le p-tag, tous les cas insensibles.la source
J'ai trouvé cela bizarre, mais en réalité, l'appel
the_content()
insérera des paragraphes de la manière que vous décrivez. Si vous voulez le code html, fondamentalement, comme vous l'avez entré (le même que "view HTML" lors de l'édition), utilisez ensuite le typeget_the_content()
qui renvoie le contenu sans balises de formatage et de paragraphe.Puisqu'il le retourne, assurez-vous d'utiliser quelque chose comme:
Voir aussi: http://codex.wordpress.org/Function_Reference/get_the_content
la source
Cela supprimera récursivement toutes les balises html vides de la chaîne
Le modèle provient de http://codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
la source
Si vous avez des
<p>
balises avec des espaces dans le contenu, accédez à votre message ou à votre page et ne le modifiez pas dans un style visuel.vous en trouveriez
. Supprimez-le et les<p>
balises vides disparaîtront.la source
Afin de n'avoir que du contenu HTML sans
balises, nous pouvons utiliser la boucle suivante pour ne mettre que le code HTML sans formater la publication ou la pagela source