平台开发中,欢迎参与测试。你可以在 QQ群:1046115671 中与我们交流,或是直接在社区发帖。(PS:翻译平台暂不可用,如需参与翻译请仍前往 wp-china.org )

    让目录模式部署的多站点的所有子站都从主站读取静态资源

    • 孙锡源
      楼主

      默认情况下每个子站都会从自己的子站目录里读取静态文件,于是当用户从主站切换到子站时所有静态资源要全部再加载一遍(因为URL不同)。

      解决这个问题的方案就是让子站直接访问主站的静态资源,这样就可以全平台共用浏览器缓存了。

      往functions.php添加如下代码:

      if ( ! is_admin() && ! ( defined('DOING_AJAX') && DOING_AJAX ) ) {
             add_filter( 'set_url_scheme', function ( $url ) {
                    global $blog_id;
      
                    if ( 0 !== (int) $blog_id && 1 !== (int) $blog_id ) {
                           return preg_replace( '#([_0-9a-zA-Z-]+/)(wp-content|wp-includes)#', '$2', $url );
                    }
      
                    return $url;
             }, 9999 );
      
             add_filter( 'pre_option_siteurl', function ( $value ) {
                    return 'https://litepress.cn';
             }, 9999 );
      }

      PS:以上代码应该还有优化空间,只是我实在是懒得继续翻WP的源码了……

      标签: 

      #20121
正在查看 0 条回复
  • 哎呀,回复话题必需登录。