wp_safe_redirect(); 不是重定向,它只是打印给定的变量?

我想我要么误解了WP Codex对wp_safe_redirect()函数的定义,要么我是个笨蛋,没有正确使用它。(我什至不知道WP有这样的功能,但是每天都在学习对吧?)


因此,在某些情况下,我有一个新实例,WP_Query它遍历特定的帖子类型,然后根据 ACF 字段 meta_key 提取单个结果。我只是想将用户重定向到第一个也是唯一找到的结果。


这是我的尝试;


$args = array(

    'post_type'              => array( 'locale' ),

    'post_status'            => array( 'published' ),

    'nopaging'               => true,

    'posts_per_page'         => '1',

    'meta_key'               => 'postal_town',

    'meta_value'             => $postal_town_result

);


$postcodeSearch = new WP_Query( $args );


if($postcodeSearch->have_posts()) : 

    while($postcodeSearch->have_posts()) : $postcodeSearch->the_post();


        $perma_url = the_permalink();

        wp_safe_redirect( $perma_url ); // just prints the url?

        exit; 


    endwhile; 

else:

    echo 'Oops, there are no posts.'

endif;

任何建议将不胜感激。


哆啦的时光机
浏览 82回答 1
1回答

繁星点点滴滴

来自 WordPress the_permalink:the_permalink显示当前帖子的永久链接。这样实际上会显示它,并且在输出后标头重定向失败,因为标头已经发送。您希望get_permalink返回永久链接而不是显示它:    $perma_url = get_permalink();    wp_safe_redirect( $perma_url );    exit;此外,使用以下内容或任何 WordPress 的等效设置将向您显示:error_reporting(E_ALL);ini_set('display_errors', '1');
打开App,查看更多内容
随时随地看视频慕课网APP