diff --git a/src/Comment.php b/src/Comment.php index 391e5b2be..65072ff1f 100644 --- a/src/Comment.php +++ b/src/Comment.php @@ -252,6 +252,10 @@ public function avatar($size = 92, $default = '') return $args['url']; } + if (isset($args['default'])) { + $default = $args['default']; + } + $email_hash = ''; if (!empty($email)) { $email_hash = \md5(\strtolower(\trim($email))); @@ -609,11 +613,23 @@ protected function avatar_default($default, $email, $size, $host) */ protected function avatar_out($default, $host, $email_hash, $size) { - $out = $host . '/avatar/' . $email_hash . '?s=' . $size . '&d=' . \urlencode($default); + $out = $host . '/avatar/' . $email_hash; $rating = \get_option('avatar_rating'); + + $url_args = [ + 's' => $size, + 'd' => $default, + ]; + if (!empty($rating)) { - $out .= '&r=' . $rating; + $url_args['r'] = $rating; } + + $out = \add_query_arg( + \rawurlencode_deep(\array_filter($url_args)), + $out + ); + return \str_replace('&', '&', \esc_url($out)); } }