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 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
php代码把全角数字转为半角数字
Dec 10 PHP
jQuery 源码分析笔记
May 25 PHP
php socket实现的聊天室代码分享
Aug 16 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
ThinkPHP控制器详解
Jul 27 PHP
php session 写入数据库
Feb 13 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
在线短消息收发的程序,不用数据库
2006/10/09 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python爬虫之百度API调用方法
2017/06/11 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
python保存文件方法小结
2018/07/27 Python
python一键去抖音视频水印工具
2018/09/14 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
在python中画正态分布图像的实例
2019/07/08 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
计算机专业大学生的自我评价
2013/11/14 职场文书
社团活动策划书范文
2014/01/09 职场文书
预备党员的自我评价
2014/03/12 职场文书
社会实践的活动方案
2014/08/22 职场文书
教师求职自荐信范文
2015/03/04 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS