因此,我在这里看到了一些与此相关的信息,例如:https://wordpress.stackexchange.com/questions/46336/wp-redirect-function-is-not-working
我尝试解决方案无济于事。我编写了一个php函数,该函数返回位于我的functions.php
文件中的永久链接,用户输入一个邮政编码,该表单将用户发送到另一个页面/locations
,在该页面中调用该函数并传递了邮政编码:
function zip_search($userZip){
$args = array(
'posts_per_page' => -1,
'post_type' => 'Locations'
);
$wp_query = new WP_Query($args);
if( $wp_query->have_posts() ): while( $wp_query->have_posts() ) : $wp_query->the_post();
$zipField=get_field('zip_codes_services');
$zipString = $zipField . ', ';
$array = explode(', ' , $zipString); //split string into array seperated by ', '
foreach($array as $value) //loop over values
{
if($value==$userZip){
$post_id = get_the_ID();
$permalink=get_permalink($post_id);
return ($permalink); //print
}
}
endwhile;
wp_reset_postdata();
endif;
}
主页上的搜索表单如下:
<form action="/locations" method="get">
<input class="form-control search-input"
autocomplete="off"
name="zipcode"
type="text"
value=""
placeholder="Enter Zip Code" />
</form>
<input type="submit" />
然后在我的/locations
页中,我调用函数以获取一个永久链接,而wp_redirect函数则以如下方式重定向至输出的永久链接:
<?php
$zipcode = ( isset($_GET['zipcode']) ? $_GET['zipcode'] : '');
echo zip_search($zipcode);
$url = zip_search( $zipcode );
wp_redirect($url);
exit();
?>
但是,当我尝试搜索时,出现此错误:
警告:无法修改标头信息-标头已由发送 (输出开始于 /srv/bindings/bdc12884a5a545f1b029665fb0fc0d35/code/wp-includes/class.wp-styles.php:225) 在 /srv/bindings/bdc12884a5a545f1b029665fb0fc0d35/code/wp-includes/pluggable.php 在第1219行
我在错误的地方调用此函数吗?过去有人遇到过这个问题吗?
答案 0 :(得分:0)
请仔细阅读本文,您可以在其中解决您的问题。几年前,我遇到过同样的问题,研究了这篇文章后,它起作用了。 Header Fix Issue
在遇到此问题时,在打开PHP语句之前,我有空白。