Ultimate Member 终极会员 头像加载慢的问题解决方案。

Ultimate Member 终极会员 头像加载慢的问题解决方案。


标签: 

正在查看 2 个帖子:1-2 (共 2 个帖子)
  • 作者
    帖子
  • 诗语
    管理员
    • 文章数量: 5,866
    @feibisi
    楼主

    不一定都完全适用,只是找到了问题的原因,我们网站启用了缓存加速和CSS,js 合并,头像一直加载很慢。

    让人无法忍受,问题的原因找到了,Ultimate Member 默认会给头像图片添加上时间戳,timestamp 比如: profile_photo.jpg?1432443141 这种形式;

    但是我想要的就是直接调去图片就行,不然每次都要请求加载一次头像。

    后台设置没找到,直接改文件的代码:

    在 /ultimate-member/core/um-short-functions.php 文件找到 1060 行或者搜索 @get avatar uri

    如下:

    	
    	/***
    	***	@get avatar uri
    	***/
    	function um_get_avatar_uri( $image, $attrs ) {
    		global $ultimatemember;
    		$uri = false;
    		$find = false;
    
    		if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $attrs. '.jpg' ) ) {
    			
    			$uri = um_user_uploads_uri() . 'profile_photo-'.$attrs.'.jpg?' . current_time( 'timestamp' );
    		
    		} else {
    			
    			$sizes = um_get_option('photo_thumb_sizes');
    			if ( is_array( $sizes ) ) $find = um_closest_num( $sizes, $attrs );
    			
    			if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $find. '.jpg' ) ) {
    				
    				$uri = um_user_uploads_uri() . 'profile_photo-'.$find.'.jpg?' . current_time( 'timestamp' );
    			
    			} else if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo.jpg' ) ) {
    				
    				$uri = um_user_uploads_uri() . 'profile_photo.jpg?' . current_time( 'timestamp' );
    			
    			}
    			
    			if ( $attrs == 'original' ) {
    				$uri = um_user_uploads_uri() . 'profile_photo.jpg?' . current_time( 'timestamp' );
    			}
    			
    		}
    		return $uri;
    	}
    	

    修改后:

    
    	/***
    	***	@get avatar uri
    	***/
    	function um_get_avatar_uri( $image, $attrs ) {
    		global $ultimatemember;
    		$uri = false;
    		$find = false;
    
    		if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $attrs. '.jpg' ) ) {
    
    			$uri = um_user_uploads_uri() . 'profile_photo-'.$attrs.'.jpg';
    
    		} else {
    
    			$sizes = um_get_option('photo_thumb_sizes');
    			if ( is_array( $sizes ) ) $find = um_closest_num( $sizes, $attrs );
    
    			if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $find. '.jpg' ) ) {
    
    				$uri = um_user_uploads_uri() . 'profile_photo-'.$find.'.jpg';
    
    			} else if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo.jpg' ) ) {
    
    				$uri = um_user_uploads_uri() . 'profile_photo.jpg';
    
    			}
    
    			if ( $attrs == 'original' ) {
    				$uri = um_user_uploads_uri() . 'profile_photo.jpg';
    			}
    
    		}
    		return $uri;
    	}
    

    把时间戳去掉,然后加载获取的就是静态图片,正常啦!

    诗语
    管理员
    • 文章数量: 5,866
    @feibisi
    楼主

    2015-12-29 15.49.43

     

    补个截图,现在查看就是直接路径,没有时间戳。

正在查看 2 个帖子:1-2 (共 2 个帖子)
  • 哎呀,回复话题必需登录。

未找到对应子版块?请直接在 [疑难杂症] 版块中发帖提问。

收藏纪念品


有奖活动

参与论坛社区问答,有机会获赠文派瓦普(Wapuu.com)手办模型。

话题信息

商业系统