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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP重定向与伪静态区别
Feb 19 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 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
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
python基础教程之序列详解
2014/08/29 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python使用多进程的实例详解
2018/09/19 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
培训主管的岗位职责
2013/11/23 职场文书
工程建设实施方案
2014/03/14 职场文书
七匹狼男装广告词
2014/03/21 职场文书
卖车协议书
2014/04/21 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
商家认证委托书格式
2014/10/16 职场文书
故宫的导游词
2015/01/31 职场文书
投标邀请书范本
2015/02/02 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
涨价通知怎么写
2015/04/23 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS