10 次查询 耗时 0.058 秒
共写了774个字,约2分钟读完,共有1条留言
登录/注册
  • 首页
  • »
  • 时光机
  • »
  • WordPress主题开发:头像本地缓存
  • WordPress主题开发:头像本地缓存

    作者:胡永云

    日期:2020年02月14日

    最近在做一个Wordpress主题,因为网站采用的Wordpress搭建,自己又不想使用官方或者别人的主题,所以就自己想做一个。

    但是,在设计制作的过程中遇到一个问题:头像有时候可以获取到,有时又获取不到。最根本的原因就是头像被墙,如果能把头像缓存到本地读取的话,这个问题就解决了。

    //头像本地缓存
    function lerm_avatar_cache( $avatar ){
        $tmp  = strpos( $avatar, 'http' );
        $g    = substr( $avatar, $tmp, strpos( $avatar, '\'', $tmp ) - $tmp );
        $tmp  = strpos( $g, 'avatar/' ) + 7;
        $f    = substr( $g, $tmp, strpos( $g, '?', $tmp ) - $tmp );//匹配图片名称
        $e    = get_template_directory() . '/avatar/' . $f . '.png';//图片缓存路径
        $t    = 604800; //缓存天数
        if( !is_file( $e ) || ( time() - filemtime( $e ) ) > $t ) copy( htmlspecialchars_decode( $g ), $e );
        else $avatar = strtr( $avatar, array( $g => get_template_directory_uri() . '/avatar/' . $f . '.png' ) );
        if( filesize( $e ) < 500 ) copy( get_template_directory()  . '/avatar/default.png', $e );
        return $avatar;
    }
    add_filter('get_avatar', 'lerm_avatar_cache' );

    把以上代码添加到主题的function.php中,然后在主题的根目录下创建一个avatar文件夹即可。

    Back Top
    — 于 共写了774个字
    — 文内使用到的标签:
    — 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

    “WordPress主题开发:头像本地缓存”共有1条评论

    1. 有了这个之后,妈妈再也不用担心网站不显示头像了。

    发表评论