web-dev-qa-db-fra.com

Formulaire de contact 7 balises p ajoutées automatiquement

J'ai le code suivant dans l'éditeur de formulaire 7 

<div class="row">
    <div class="col-sm-8 col-sm-offset-2">
        <div class="row">
            <div class="col-sm-4">
                [text* name class:border-field placeholder "Name"]
            </div><!-- End of col -->
            <div class="col-sm-4">
                [email* email class:border-field placeholder "Email"]
            </div><!-- End of col -->
            <div class="col-sm-4">
                [text subject class:border-field placeholder "Subject"]
            </div><!-- End of col -->
        </div><!-- ENd of row -->
    </div><!-- End of col -->
</div><!-- ENd of row -->

<div class="row">
    <div class="col-sm-8 col-sm-offset-2">
        [textarea message class:border-field placeholder "Message"]
    </div>
</div><!-- End of row -->

<div class="row text-center">
    <div clas s="col-sm-12">    
        [submit class:btn class:btn-black-fill class:btn-small "Submit"]  
    </div><!-- End of col -->
</div><!-- End of row -->

Le problème est qu’il ajoute des balises p aléatoires presque après chaque élément et que le premier champ de texte est pour une raison quelconque légèrement au-dessus des deux autres champs alors qu’ils devraient tous être en ligne. Et je pense que ce n’est pas un problème css car jadis j’avais ce code dans le plan HTML et tous les champs étaient en ligne, je pense donc que ce doit être quelque chose avec le formulaire de contact 7.

19
Nenad Vracar

Selon le Docs du formulaire de contact 7 , vous pouvez désactiver "wpautop" pour le plug-in en plaçant la constante suivante dans wp-config.php:

define( 'WPCF7_AUTOP', false );
48
rnevius

Ajoutez ceci dans votre fichier functions.php

function reformat_auto_p_tags($content) {
    $new_content = '';
    $pattern_full = '{(\[raw\].*?\[/raw\])}is';
    $pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
    $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
    foreach ($pieces as $piece) {
        if (preg_match($pattern_contents, $piece, $matches)) {
            $new_content .= $matches[1];
        } else {
            $new_content .= wptexturize(wpautop($piece));
        }
    }

    return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'reformat_auto_p_tags', 99);
add_filter('widget_text', 'reformat_auto_p_tags', 99);

Ensuite, dans votre éditeur de message, emballez votre numéro de téléphone 7 avec le code court raw

par exemple.

[raw][contact-form-7 id="1" title="Contact Us"][/raw]
2
silver

Je voudrais dire quelque chose à ce sujet, lorsque nous voulons réduire le nombre de balises P automatiques, nous devrions utiliser le filtre ci-dessous et simplement écrire le code de coup dans function.php.

add_filter('wpcf7_autop_or_not', '__return_false'); 
1
Hitesh Prajapati

J'ai essayé beaucoup de réponses mais rien n'a fonctionné alors ...
J'ai fini par utiliser un simple CSS pour cibler spécifiquement les balises P vides
dans la forme même comme ceci: 

.wpcf7-form p:empty { display: none; }

Cela a fonctionné pour moi et c'est une solution simple.

0
Sagive SEO