如何修改wp_safe_redirect()允许的域名列表
  • 3年前
  • 如何修改wp_safe_redirect()允许的域名列表852
  • 这个问题几乎不会有人回去考虑,毕竟这个函数使用的人可能都比较少,那么这个函数是干什么的? [wp url="https://developer.wordpress.org/reference/functions/wp_safe_redirect/" unique_number="wp_4b391bb624164d11908b9f63df1b26c8"]

    通过上面的介绍,我们基本知道了这个函数的作用是进行重定向跳转,不过除了该函数以外,wp_redirect()函数也具备重定向跳转功能,二者之间存在什么差别呢?

    下方是wp_safe_redirect()源码:

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

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

    简单的看看allowed_redirect_hosts的介绍: [wp url="https://developer.wordpress.org/reference/hooks/allowed_redirect_hosts/" unique_number="wp_e40ba522f1fa44da95b6bcca08eac506"]

    简单的理解就是提供一个数组,在这些数组里面的域名是可以认定为安全并且可以跳转的,否则直接跳转到/wp-admin界面,这个也是wp_redirect()和wp_safe_redirect()的最大区别之一即后者提供了一个跳转安全跳转地址范围集合,前者则无视

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

    function my_allowed_redirect_hosts( $hosts ) {
        $my_hosts = array(
            'blog.example.com',
            'codex.example.com',
        );
        return array_merge( $hosts, $my_hosts );
    };
    add_filter( 'allowed_redirect_hosts', 'my_allowed_redirect_hosts' );
    

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

    以上就是本文所有内容了,如果感兴趣的可以自行实践一下,复制粘贴并不能帮助到你什么,了解原理,哪怕只能收获1%都是赚到。

  • 联系我们
  • 有任何疑问欢迎联系我们
  • WP新手学园
  • 如何修改wp_safe_redirect()允许的域名列表
  • 邮箱:2830776172#qq.com(#换成@)
  • 回复时间:9:00-19:00
  • 如果提问.请图文并茂,详细描述问题
  • 如何修改wp_safe_redirect()允许的域名列表
  • 微信号:wpxsxy_official
  • 仅支持付费解决问题
  • *并非所有问题都会被回复
  • 如何修改wp_safe_redirect()允许的域名列表
  • QQ:2830776172
  • 回复时间:9:00-19:00
  • QQ仅支持付费提问,时间有限,尽情谅解
  • 如何修改wp_safe_redirect()允许的域名列表
  • QQ群:198768181
  • 有问题可以进去提问,寻求群友帮助
  • *并非所有问题都会被回复
  • 如何修改wp_safe_redirect()允许的域名列表
  • 咸鱼:WP新手学园
  • 如果对于直接交易不放心,可以走闲鱼
  • *咸鱼价格不作为最终交易价格
  • 备案号:鄂ICP备2021011647号-1