在页脚中使用GET_TEMPLATE_PART()时出现问题

时间:2018-09-21 作者:Žiga Stupan

首先,我要说的是,我对主题开发还不熟悉,我希望没有什么明显的遗漏。

我在找这张表格

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;
?> 
进入页脚,如下所示:

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>
问题是,缺少第二行。它不在DOM中。但当我将表单硬编码到页脚中时,效果很好。所以我认为get\\u template\\u part函数有问题。

1 个回复
最合适的回答,由SO网友:phatskat 整理而成

看起来像是contactform.php 可能会导致问题。

具体而言,这些行:

global $wp;
wp_redirect(home_url($wp->request));
exit;
Theexit 语句可能正在停止执行脚本的其余部分。如果要处理表单数据,应该检查并处理表单数据,而不是在包含部件时仅运行重定向和退出语句。

结束

相关推荐