WordPress中用于獲取及自定義頭像圖片的PHP腳本詳解
get_avatar()(獲取頭像)
get_avatar() 函數(shù)用來獲取置頂郵箱或者用戶的頭像代碼,在評論列表中非常常用。
這個函數(shù)提供一個 get_avatar 過濾器,用來過濾頭像的 Html 代碼(img 標(biāo)簽)。
如果在后臺 “設(shè)置” 的 “討論” 里關(guān)閉 “顯示頭像選項(xiàng)” 則返回 False.
用法
get_avatar( $id_or_email, $size, $default, $alt );
參數(shù)
$id_or_email
(整數(shù) | 字符串 | 對象)(必須)用戶的 ID;郵箱;評論或者用戶的對象。如果在循環(huán)中可以使用 get_the_author_meta( 'ID' ) 函數(shù)調(diào)用當(dāng)前文章的作者。
默認(rèn)值:None
$size
(整數(shù))(可選)頭像的尺寸,最大為 512,單位為像素(px)。
默認(rèn)值:96
get_avatar()(獲取頭像)
$default
(字符串)(可選)如果沒有頭像返回的圖片,默認(rèn)為 “神秘人”,可以是圖片 URL.
默認(rèn)值:空字符串(神秘人)
$alt
(字符串)(可選)頭像 img 標(biāo)簽的 alt 屬性內(nèi)容。
默認(rèn)值:False
返回值
(字符串 | 布爾)返回一個頭像的 img 標(biāo)簽,如果在后臺 “設(shè)置” 的 “討論” 里關(guān)閉 “顯示頭像選項(xiàng)” 則返回 False.
例子
評論列表:
<?php echo get_avatar( $GLOBALS['comment'] ); ?>
循環(huán),獲取當(dāng)前文章作者頭像:
<?php echo get_avatar( get_the_author_meta( 'ID' ), 32 ); ?>
自定義郵箱:
<?php echo get_avatar( 'email@example.com', 32, '', '自定義郵箱' ); ?>
自定義頭像圖片的 alt 標(biāo)簽
WordPress 默認(rèn)使用的是 Gravatar 頭像,通過 get_avatar() 函數(shù)調(diào)用,一般用來在調(diào)用評論的時候使用。
利用 get_avatar() 函數(shù)的第四個屬性 $alt 可以設(shè)置返回代碼的 alt 標(biāo)簽,但是大多數(shù)人在使用的時候都不會去設(shè)置,也就變成了空白。
搜索引擎的爬蟲是無法讀取圖片上到底是什么內(nèi)容的,只能靠它的 alt 標(biāo)簽,沒有了 alt 標(biāo)簽的圖片,對 SEO 是非常不好的。
如果想要給所有的頭像都統(tǒng)一加上一個 alt 標(biāo)簽,可以把下邊的代碼放到主題的 functions.php(了解更多) 文件。
/** *WordPress 自定義頭像圖片的 alt 標(biāo)簽 *根據(jù)不同的人生成不同的 alt 標(biāo)簽 *http://www.endskin.com/avatar-alt/ */ function Bing_avatar_alt( $avatar ){ $alt = 'Gravatar 頭像';//alt 標(biāo)簽的內(nèi)容 $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 標(biāo)簽內(nèi)容。
根據(jù)不同的人生成不同的 alt 標(biāo)簽
如果要根據(jù)不同的人放置不同的 alt 標(biāo)簽可以用下邊的例子代碼:
/** *WordPress 自定義頭像圖片的 alt 標(biāo)簽 *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 標(biāo)簽內(nèi)容 }else{ $alt = 'Gravatar 頭像';//普通訪客的 alt 標(biāo)簽內(nèi)容 } $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 );
如果已經(jīng)設(shè)置 alt 標(biāo)簽則不替換
如果你需要在已經(jīng)設(shè)置 alt 標(biāo)簽的內(nèi)容(get_avatar() 函數(shù)的 $alt 屬性)則不替換的時候可以用下邊的代碼:
/** *WordPress 自定義頭像圖片的 alt 標(biāo)簽 *如果已經(jīng)設(shè)置 alt 標(biāo)簽則不替換 *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 標(biāo)簽的內(nèi)容 $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 );
相關(guān)文章
dir()、readdir()、scandir()和glob()四種遍歷目錄方法及性能分析
php遍歷目錄和文件的場景在很多時候都能用到,遍歷目錄方法的方法有好幾種,那么應(yīng)該使用哪種方法呢?下面介紹dir()、readdir()、scandir()和glob()四種遍歷目錄方法及性能分析。2022-12-12PHP計(jì)算當(dāng)前坐標(biāo)3公里內(nèi)4個角落的最大最小經(jīng)緯度實(shí)例
這篇文章主要介紹了PHP計(jì)算當(dāng)前坐標(biāo)3公里內(nèi)4個角落的最大最小經(jīng)緯度的方法,涉及PHP數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-02-02php后退一頁表單內(nèi)容保存實(shí)現(xiàn)方法
php表單在提交之后再后退,表單的內(nèi)容默認(rèn)是被清空的(使用session_start的時候),解決方法是在session_start() 之后,字符輸出之前寫上header(Cache-control: private)2012-06-06mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對比
這篇文章主要介紹了mod_php、FastCGI、PHP-FPM等PHP運(yùn)行方式對比,本文講解了什么是PHP處理器(PHP handlers)、mod_php的優(yōu)缺點(diǎn)、FastCGI的優(yōu)缺點(diǎn)、PHP-FPM(FastCGI Process Manager)的優(yōu)缺點(diǎn)等內(nèi)容,需要的朋友可以參考下2015-07-07