这个问题几乎不会有人回去考虑,毕竟这个函数使用的人可能都比较少,那么这个函数是干什么的?

  • wp_safe_redirect() 函数介绍
  • 函数用法
  • Performs a safe (local) redirect, using wp_redirect().

  • 功能介绍
  • Checks whether the $location is using an allowed host, if it has an absolute path. A plugin can therefore set or remove allowed host(s) to or from the list.

    If the host is not allowed, then the redirect defaults to wp-admin on the siteurl instead. This prevents malicious redirects which redirect to another host, but only used in a few places.

    Note: wp_safe_redirect() does not exit automatically, and should almost always be followed by a call to exit;:

    wp_safe_redirect( $url );
    exit;

    Exiting can also be selectively manipulated by using wp_safe_redirect() as a conditional in conjunction with the ‘wp_redirect’ and ‘wp_redirect_location’ filters:

    if ( wp_safe_redirect( $url ) ) {
        exit;
    }
  • 参数介绍
  • $location
    (string) (Required) The path or URL to redirect to.
    $status
    (int) (Optional) HTTP response status code to use. Default '302' (Moved Temporarily). Default value: 302
    $x_redirect_by
    (string) (Optional) The application doing the redirect. Default value: 'WordPress'
  • 返回值
  • (bool) False if the redirect was cancelled, true otherwise.
  • 通过上面的介绍,我们基本知道了这个函数的作用是进行重定向跳转,不过除了该函数以外,wp_redirect()函数也具备重定向跳转功能,二者之间存在什么差别呢?

    下方是wp_safe_redirect()源码:

    通过源码我们可以看到该函数经过了wp_validate_redirect()函数处理之后最终通过wp_redirect()函数输出,那么关键就是wp_validate_redirect()函数做了什么内容:

    通过该函数的源码我们了解到,该函数经过一个过滤器,而这个而这个过滤器则是本文功能实现的关键:allowed_redirect_hosts

    简单的看看allowed_redirect_hosts的介绍:

  • allowed_redirect_hosts 函数介绍
  • 函数用法
  • Filters the list of allowed hosts to redirect to.

  • 功能介绍
  • 暂无数据
  • 参数介绍
  • $hosts
    (string[]) An array of allowed host names.
    $host
    (string) The host name of the redirect destination; empty string if not set.
  • 返回值
  • 暂无数据
  • 简单的理解就是提供一个数组,在这些数组里面的域名是可以认定为安全并且可以跳转的,否则直接跳转到/wp-admin界面,这个也是wp_redirect()和wp_safe_redirect()的最大区别之一即后者提供了一个跳转安全跳转地址范围集合,前者则无视

    了解了allowed_redirect_hosts过滤器之后,我们需要做的就是将自己提供的一个安全地址数组和系统自带的数组进行合并后返回:

    以上的例子来自官方,已经是最标准的功能代码了,你只需要修改其中的blog.example.com和codex.example.com即可达到目的,之后添加到function.php即可,如果你不知道如何添加代码,可以考虑查看下面的文章:

  • Code Snippets:更容易地添加代码
  • WordPress作为一款开源博客程序,深受大家的喜爱,当然还有一个原因就是可以通过自定义代码来实现自己需要的功能和效果,但是很多新手对于怎么添加代码,哪里添加代码都是一脸懵逼,不过,在你了解了本插件...
  • 以上就是本文所有内容了,如果感兴趣的可以自行实践一下,复制粘贴并不能帮助到你什么,了解原理,哪怕只能收获1%都是赚到。