WordPress中用于获取及自定义头像图片的PHP脚本详解


Posted in PHP onDecember 17, 2015

get_avatar()(获取头像)
get_avatar() 函数用来获取置顶邮箱或者用户的头像代码,在评论列表中非常常用。

这个函数提供一个 get_avatar 过滤器,用来过滤头像的 Html 代码(img 标签)。

如果在后台 “设置” 的 “讨论” 里关闭 “显示头像选项” 则返回 False.

用法

get_avatar( $id_or_email, $size, $default, $alt );

参数

$id_or_email

(整数 | 字符串 | 对象)(必须)用户的 ID;邮箱;评论或者用户的对象。如果在循环中可以使用 get_the_author_meta( 'ID' ) 函数调用当前文章的作者。

默认值:None

$size

(整数)(可选)头像的尺寸,最大为 512,单位为像素(px)。

默认值:96
get_avatar()(获取头像)
$default

(字符串)(可选)如果没有头像返回的图片,默认为 “神秘人”,可以是图片 URL.

默认值:空字符串(神秘人)

$alt

(字符串)(可选)头像 img 标签的 alt 属性内容。

默认值:False

返回值

(字符串 | 布尔)返回一个头像的 img 标签,如果在后台 “设置” 的 “讨论” 里关闭 “显示头像选项” 则返回 False.

例子

评论列表:

<?php echo get_avatar( $GLOBALS['comment'] ); ?>

循环,获取当前文章作者头像:

<?php echo get_avatar( get_the_author_meta( 'ID' ), 32 ); ?>

自定义邮箱:

<?php echo get_avatar( 'email@example.com', 32, '', '自定义邮箱' ); ?>

自定义头像图片的 alt 标签
WordPress 默认使用的是 Gravatar 头像,通过 get_avatar() 函数调用,一般用来在调用评论的时候使用。

利用 get_avatar() 函数的第四个属性 $alt 可以设置返回代码的 alt 标签,但是大多数人在使用的时候都不会去设置,也就变成了空白。

搜索引擎的爬虫是无法读取图片上到底是什么内容的,只能靠它的 alt 标签,没有了 alt 标签的图片,对 SEO 是非常不好的。

如果想要给所有的头像都统一加上一个 alt 标签,可以把下边的代码放到主题的 functions.php(了解更多) 文件。

/**
  *WordPress 自定义头像图片的 alt 标签
  *根据不同的人生成不同的 alt 标签
  *http://www.endskin.com/avatar-alt/
*/
function Bing_avatar_alt( $avatar ){
  $alt = 'Gravatar 头像';//alt 标签的内容
  $before = strpos( $avatar, "alt='" );
  $after = strpos( $avatar, "'", $before );
  if( $before === false || $after === false ) return $avatar;
  $alt = esc_attr( $alt );
  return substr( $avatar, 0, $before ) . "alt='$alt" . substr( $avatar, $after + strlen( "'" ) );
}
add_filter( 'get_avatar', 'Bing_avatar_alt' );

这样就行了,注意修改代码里的 $alt 变量为你要修改成的 alt 标签内容。

根据不同的人生成不同的 alt 标签

如果要根据不同的人放置不同的 alt 标签可以用下边的例子代码:

/**
  *WordPress 自定义头像图片的 alt 标签
  *http://www.endskin.com/avatar-alt/
*/
function Bing_avatar_alt( $avatar, $id_or_email ){
  if( $id_or_email == 'bingoblog@163.com' || $id_or_email === 1 ){
    $alt = '博主 Gravatar 头像';//博主的 alt 标签内容
  }else{
    $alt = 'Gravatar 头像';//普通访客的 alt 标签内容
  }
  $before = strpos( $avatar, "alt='" );
  $after = strpos( $avatar, "'", $before );
  if( $before === false || $after === false ) return $avatar;
  $alt = esc_attr( $alt );
  return substr( $avatar, 0, $before ) . "alt='$alt" . substr( $avatar, $after + strlen( "'" ) );
}
add_filter( 'get_avatar', 'Bing_avatar_alt', 10, 2 );

如果已经设置 alt 标签则不替换

如果你需要在已经设置 alt 标签的内容(get_avatar() 函数的 $alt 属性)则不替换的时候可以用下边的代码:

/**
  *WordPress 自定义头像图片的 alt 标签
  *如果已经设置 alt 标签则不替换
  *http://www.endskin.com/avatar-alt/
*/
function Bing_avatar_alt( $avatar, $id_or_email, $size, $default, $alt ){
  if( !empty( $alt ) ) return $avatar;
  $alt = 'Gravatar 头像';//alt 标签的内容
  $before = strpos( $avatar, "alt='" );
  $after = strpos( $avatar, "'", $before );
  if( $before === false || $after === false ) return $avatar;
  $alt = esc_attr( $alt );
  return substr( $avatar, 0, $before ) . "alt='$alt" . substr( $avatar, $after + strlen( "'" ) );
}
add_filter( 'get_avatar', 'Bing_avatar_alt', 10, 5 );

PHP 相关文章推荐
php 设计模式之 工厂模式
Dec 19 PHP
PHP 编程安全性小结
Jan 08 PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
PHP 面向对象详解
Sep 13 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php实例分享之mysql数据备份
May 19 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 #PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 #PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 #PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 #PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 #PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 #PHP
php提交post数组参数实例分析
Dec 17 #PHP
You might like
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
mouse_on_title.js
2006/08/25 Javascript
javascript 写类方式之四
2009/07/05 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
详解javascript常用工具类的封装
2018/01/30 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
Python实现配置文件备份的方法
2015/07/30 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
学习全国两会精神心得体会范文
2014/03/17 职场文书
文明市民先进事迹
2014/05/15 职场文书
初中生物教学随笔
2015/08/15 职场文书
2016年情人节问候语
2015/11/11 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server