web-dev-qa-db-fra.com

Gravatar personnalisé ne fonctionne pas

J'essaie de télécharger un Gravatar personnalisé sur Wordpress, mais quelque chose brise le lien de l'image et je ne sais pas comment le réparer.

add_filter( 'avatar_defaults', 'new_default_avatar' );

function new_default_avatar ( $avatar_defaults ) {
    //Set the URL where the image file for your avatar is located
    $new_avatar_url = get_bloginfo( 'template_directory' ) . '/img/icons/avatar.jpg';
    //Set the text that will appear to the right of your avatar in Settings>>Discussion
    $avatar_defaults[$new_avatar_url] = 'New Default Gravatar';
    return $avatar_defaults;
}

Le code fonctionne, car je reçois un bouton radio avec l'option d'ajouter le Gravatar. La seule chose qui est cassée est l'image réelle.

Quand je fais un clic droit sur l'image, j'obtiens cette URL:

http://i2.wp.com/localhost/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

Je ne sais pas d'où vient i2.wp.com ni ce qu'il fait. Quand je retire ça et fais

loalhost: 888/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

Je peux voir l'image de Gravatar.

Quand j'ai googlé ceci, j'ai vu beaucoup de gens avoir ce problème à cause des plugins Jetpack et Photon, mais je n'ai aucun plugin installé.

4
Anindya Basu

Je pense que le problème est simplement que votre par défaut avatar n'est pas publiquement disponible .

Essayez par exemple

http://upload.wikimedia.org/wikipedia/fr/b/b0/Avatar-Teaser-Poster.jpg

au lieu de

http://loalhost:888/wordpress/wp-content/themes/blog-theme/img/icons/avatar.jpg

Notez que le gravatar par défaut est servi via http{|s}://i{0,1,2}.wp.com/...

À partir de la documentation :

Lorsque vous incluez une image par défaut, Gravatar diffusera automatiquement cette image si aucune image n'est associée au hachage de courrier électronique demandé. Il y a peu de> conditions à remplir pour l'URL d'image par défaut:

  • DOIT être accessible au public (par exemple, ne peut pas se trouver sur un intranet, sur une machine de développement locale, derrière une autorisation HTTP ou un autre pare-feu, etc.). Les images par défaut sont soumises à une analyse de sécurité pour éviter les contenus malveillants.
  • DOIT être accessible via HTTP ou HTTPS sur les ports standard, respectivement 80 et 443.
  • DOIT avoir une extension d'image reconnaissable (jpg, jpeg, gif, png)
  • NE DOIT PAS inclure de chaîne de requête (si c'est le cas, elle sera ignorée)
7
birgire

C'est à cause de l'addon Photon que vous avez activé dans le plugin JetPack. C'est pourquoi vos URL d'image seront comme ...

> http://i0.wp.com/image-url
> http://i1.wp.com/image-url
> http://i2.wp.com/image-url

Vous obtiendrez l'une de ces trois URL. Ce sont les services CDN gratuits de WordPress. Qui est genial.

Le problème est que vous essayez sur localhost, c'est pourquoi cela ne fonctionne pas. Parce que WordPress CDN ou tout autre CDN ne peut pas extraire des images de localhost. Vous devriez l'essayer sur le serveur en ligne. Il suffit de désactiver le photon et tout ira bien :)

Un conseil, n'activez jamais les services CDN sur localhost. Vous allez avoir des erreurs.

EDIT: Par défaut, il devrait avoir quelque chose comme ...

http://0.gravatar.com/avatar/...

Mais dans votre cas, il utilise http://i2.wp.com/ qui doit être causé par un plugin ou vous avez ajouté du code dans functions.php.

Avez-vous ajouté du code dans functions.php pour renvoyer toutes les images de http://i2.wp.com/. Cela doit aussi être un cas.

0
Robert hue