私はdivの背景URLのスタイルとしてそれを使用するためにユーザーのアバターURLを取得したいです。私は次のようにしようとしましたが、私はそれがそのように見えるコードを見たときに何も返しません。
background: url()
私はこの機能を使いました。
function get_avatar_url($get_avatar){
preg_match("/src='(.*?)'/i", $get_avatar, $matches);
return $matches[1];
}
任意の助けてください?
Gravatar URLを自分で構築するのは非常に簡単です。これは、単にユーザーの電子メールアドレスのMD5ハッシュです。
<?php $gravatar = 'http://www.gravatar.com/avatar/' . md5(strtolower($email)) . '&s=32'; ?>
<div class="avatar" style="background: url(<?php echo $gravatar ?>);" ></div>
最後のs
パラメータは、画像のサイズをピクセル単位で定義します。
Gravatarsを使う - WordPress Codex
WordPressバージョン4.2.0以降、 get_avatar_url() を使用できます。この関数はwp-includes/link-template.php
にあります。
function get_avatar_url( $id_or_email, $args = null ) {
$args = get_avatar_data( $id_or_email, $args );
return $args['url'];
}
だからあなたは単にそれを使用することができます:
$avatar_url = get_avatar_url($user_id);
また、私はこれが古い質問であることを知っています、しかし学ぶべきすばらしい教訓。カスタム関数を追加するときは常にプレフィックスを使用してください。あなたのカスタム関数はget_avatar_url()
であり、新しく追加されたコア関数get_avatar_url()
もそうです。 4.2.0にアップグレードしたときにエラーが発生したはずです。
<?php
add_filter(
'get_avatar',
'get_avatar_url',
10,
5
);
function get_avatar_url( $avatar, $id_or_email, $size = 96, $default = '', $alt = '' ) {
preg_match( '#src=["|\'](.+)["|\']#Uuis', $avatar, $matches );
return ( isset( $matches[1] ) && ! empty( $matches[1]) ) ?
(string) $matches[1] : '';
}
get_avatar
にフィルタを適用します、それは5つの引数を取ります(!)。最初のものは完全な<img>
-タグです。また、ソースを二重引用符とで囲むことができることを忘れないでください(["|']
)。それがあなたの機能が失敗した点だと思います。