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实现的功能是显示8条基色色带
Oct 09 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
PHP实现搜索相似图片
Sep 22 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP常用技巧汇总
2016/03/04 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
客户端静态页面玩分页
2006/06/26 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
用Python制作简单的钢琴程序的教程
2015/04/01 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
Pycharm调试程序技巧小结
2020/08/08 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
详解rem 适配布局
2018/10/31 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
电大自我鉴定范文
2013/10/01 职场文书
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
建筑学推荐信
2013/11/03 职场文书
十一酒店活动方案
2014/02/20 职场文书
爱国主义演讲稿
2014/05/07 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
高二英语教学反思
2016/03/03 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python