如何停止将代码添加到当前页面URL而不是重定向。我被困了好几天

时间:2019-02-03 作者:Alexander Leeman

我目前正在建立一个WordPress网站,一切都很顺利,只是有一个问题我实在想不出来。

因此,基本上我在我的网站上有一个预订表单,允许人们选择几个值(卧室和浴室的数量),然后当他们单击按钮时,这些值将被修改为预订页面URL并加载。

我遇到的问题是,代码被修改到我当前(主页)的末尾,因此没有任何效果/只是重新加载页面。

经过数小时的查找/故障排除和猜测,我相信我感兴趣的代码如下所示。这会不会是permalink(20)不存在的问题,因此只返回当前页面?如果是这样的话,那就奇怪了,因为这个主题应该可以从安装开始就开始了。

在我的页面下方,同样的按钮指向我的主页。com/?post\\U type=acf字段(&U);p=20,而不是预订页面。

从字面上说,任何与此相关的帮助都将不胜感激。环顾四周,学到很多东西很有趣,但我真的需要我的网站尽快工作。再次感谢您。

我认为代码可能是问题的一部分:

 <form action="<?php echo get_permalink( 20 ); ?>" method="get">
                    <select name="service_id" data-custom-class="select-bedrooms">
                        <option value="" disabled selected><?php _e( \'Bedrooms\', \'themestreet\' ); ?></option>
                        <?php if ( have_rows( \'bedroom_list\',\'option\' ) ) : $i = 1; ?>
                            <?php while ( have_rows( \'bedroom_list\',\'option\' ) ) : the_row();
                                // vars
                                $value    = get_sub_field( \'value\' );
                                $title     = get_sub_field( \'title\' );
                                ?><option value="<?php echo $value; ?>"><?php echo $title; ?></option>
                                <?php $i++; ?>
                            <?php endwhile; ?>
                                <?php else: ?>
                                <option value="" disabled selected><?php _e( \'Bedrooms\', \'themestreet\' ); ?></option>
                                <option value="1"><?php _e(\'One Bedroom\',\'themestreet\'); ?></option>
                                <option value="2"><?php _e(\'Two Bedrooms\',\'themestreet\'); ?></option>
                                <option value="3"><?php _e(\'Three Bedrooms\',\'themestreet\'); ?></option>
                                <option value="4"><?php _e(\'Four Bedrooms\',\'themestreet\'); ?></option>
                                <option value="5"><?php _e(\'Five Bedrooms\',\'themestreet\'); ?></option>
                                <option value="6"><?php _e(\'Six Bedrooms\',\'themestreet\'); ?></option>
                        <?php endif; ?>
                    </select>
                    <select name="pricing_param_quantity" data-custom-class="select-bathrooms">
                        <option value="" disabled selected><?php _e( \'Bathrooms\', \'themestreet\' ); ?></option>
                        <?php if ( have_rows( \'bathroom_list\',\'option\' ) ) : $i = 1; ?>
                            <?php while ( have_rows( \'bathroom_list\',\'option\' ) ) : the_row();
                                // vars
                                $value    = get_sub_field( \'value\' );
                                $title     = get_sub_field( \'title\' );
                                ?><option value="<?php echo $value; ?>"><?php echo $title; ?></option>
                                <?php $i++; ?>
                            <?php endwhile; ?>
                            <?php else: ?>
                                <option value="" disabled selected><?php _e( \'Bathrooms\', \'themestreet\' ); ?></option>
                                <option value="1"><?php _e(\'1 Bathroom\',\'themestreet\'); ?></option>
                                <option value="2"><?php _e(\'2 Bathrooms\',\'themestreet\'); ?></option>
                                <option value="3"><?php _e(\'3 Bathrooms\',\'themestreet\'); ?></option>
                                <option value="4"><?php _e(\'4 Bathrooms\',\'themestreet\'); ?></option>
                                <option value="5"><?php _e(\'5 Bathrooms\',\'themestreet\'); ?></option>
                                <option value="6"><?php _e(\'6 Bathrooms\',\'themestreet\'); ?></option>
                        <?php endif; ?>
                    </select>
                    <button class="btn btn--primary"><?php _e( \'BOOK A CLEANING NOW\', \'themestreet\' ); ?></button>
                </form>

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

这会不会是permalink(20)不存在的问题,因此只返回当前页面?

是的,现在似乎已经发生了。尝试将永久链接的id更改为您的预订页面id。

 get_permalink( BOOKING_PAGE_ID )

SO网友:Rick Hellewell

我会这样做:

制作子主题,复制单曲。php将主主题转换为子主题,修改复制的单个主题。将php转换为新模板,并将表单放置在模板区域创建使用该模板的页面创建表单处理页面/流程;您可以将要处理的代码放在同一模板中

此过程的优点是,模板将在使用该模板的页面上显示所需内容。您可以决定模板显示的内容。

googles和WP Codex中有很多关于如何创建子主题和模板的帮助。

子主题的优点是,对任何内容所做的任何更改都不会被主主题更新覆盖。模板的优点是,您可以让页面做您想要的事情。