web-dev-qa-db-fra.com

Sortie brute (empêchant wpautop)

Utiliser WordPress 3.5.

J'essaie de mettre un <form> dans une page d'un site basé sur WP. Malheureusement, WP bousille "utilement" le formatage du formulaire en insérant les balises <br> et <p> à des emplacements inappropriés, à côté des contrôles de formulaire.

Je ne veux pas désactiver wpautop globalement, car cela reste utile pour les articles de blog (en particulier puisqu'il s'agit d'un site multi-auteurs). Je ne veux même pas le désactiver pour l'ensemble de la page. Je veux un moyen de le désactiver uniquement dans cette section spécifique de cette page.

J'ai lu dans les changelogs WP que les supposés shortcodes n'exécutent plus wpautop sur leur sortie, alors j'ai essayé de créer le shortcode suivant:

function raw_shortcode( $atts, $content = null ) {
   return $content;
}
add_shortcode('raw', 'raw_shortcode');

Malheureusement, cela ne semble pas fonctionner - l'entourage du formulaire entraîne toujours des sauts indésirables et l'ajout de paragraphes.

J'ai vu quelques exemples suggérant une modification des filtres standard , mais j'ai aussi lu un autre pages suggérant qu’il s’agit d’une mauvaise idée.

2
Miral

En retard pour la fête, mais ce plugin, , active/désactive wpautop , vous permet de désactiver de manière sélective si vous voulez que WP écrase votre contenu sur des pages ou posts, et travaille sur WP 4.9 (version actuelle à partir de cette réponse).

1
Mac

Essayez de modifier votre fonction de shortcode pour sortir votre formulaire - je veux dire insérer votre formulaire html dans la variable $ output de votre code:

function raw_shortcode( $atts ) {
    $output = '<form><label for="id">Label</label><input type="text" name="name" id="id"/></form>';
    return $output;
}
add_shortcode('form', 'raw_shortcode');

Et que d'ajouter simplement [formulaire] à votre contenu.

0
david.binda