无法使用wp_redirect重定向

时间:2018-10-26 19:43:04

标签: php wordpress

因此,我在这里看到了一些与此相关的信息,例如: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行

我在错误的地方调用此函数吗?过去有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

请仔细阅读本文,您可以在其中解决您的问题。几年前,我遇到过同样的问题,研究了这篇文章后,它起作用了。 Header Fix Issue

在遇到此问题时,在打开PHP语句之前,我有空白。