web-dev-qa-db-fra.com

Problème d'utilisation de get_template_part () dans le pied de page

Tout d’abord, permettez-moi de dire que je suis novice dans le développement de thèmes, j’espère que rien ne me manque.

J'essaie d'obtenir ce formulaire

contactform.php

<form method="POST" action="">
    <input type="text" name="contact_name" placeholder="Name" class="form-control" required>
    <input type="email" name="contact_email" placeholder="E-Mail" class="form-control" required>
    <textarea name="contact_message" placeholder="Message" rows="4" class= "form-control"  required></textarea>
  <button type="submit" class="btn btn-secondary">Send</button>
</form>

<?php 
//process request...

//redirect to previous page
global $wp;
wp_redirect(home_url($wp->request));
exit;
?> 

Dans le pied de page comme suit:

footer.php

<footer class="footer">
    <div class="container">           
        <div class="row">
            <div class="col-sm">
                Stuff
            </div>
            <div class="col-sm">
                Stuff
            </div>
            <div class="col-sm">
                <!-- form goes here -->
                <?php get_template_part( 'contactform'); ?>
            </div>
        </div>
        <div class="row">
            <div class="col-sm">More stuff</div>
            <div class="col-sm">More stuff</div>
            <div class="col-sm">More stuff</div>
        </div>
    </div>
<?php wp_footer(); ?>
</footer>

Le problème est que la deuxième ligne est manquante. Ce n'est pas dans le DOM. Mais lorsque je code le formulaire dans le pied de page, cela fonctionne bien. J'ai donc pensé qu'il y avait un problème avec la fonction get_template_part.

2
Žiga Stupan

Il semble que le code dans contactform.php puisse causer des problèmes.

Ces lignes, en particulier:

global $wp;
wp_redirect(home_url($wp->request));
exit;

L'instruction exit peut arrêter l'exécution du reste du script. Si vous souhaitez traiter des données de formulaire, vous devez les rechercher et les traiter au lieu de simplement exécuter les instructions de redirection et de sortie chaque fois que la pièce est incluse.

0
phatskat