web-dev-qa-db-fra.com

La modification de l'avatar par défaut de Buddypress affecte tous les avatars du site (car gravatar)

Je cherchais un moyen de modifier l'avatar par défaut de Buddypress pour les membres et je l'ai géré, en utilisant simplement le codex Buddypress info ici.

MAIS

L'information du codex ne fait pas vraiment l'affaire. Il semble que Gravatar le remplace, aussi le code codex fonctionne-t-il si je désactive d'abord Gravatar.

Le problème auquel je suis maintenant confronté est qu'en désactivant gravatar pour buddypress, cela le désactive sur tout le site, de sorte que les utilisateurs wordpress normaux (par exemple, les administrateurs/éditeurs) ne peuvent pas modifier leurs avatars via l'espace de profil utilisateur de wordpress, car sa configuration vous permet de "changer la photo de votre profil sur gravatar".

MAIS

Tous les utilisateurs peuvent accéder à leur page de compte buddypress (que nous avons tous automatiquement quelle que soit notre inscription, tant que nous avons un compte utilisateur sur le site) et ils peuvent modifier leur avatar, ce qui a une incidence sur l'ensemble du site.

Tout va bien, mais pas tout à fait.

Je me demande donc si quelqu'un a une solution qui me permettrait de définir un nouvel avatar par défaut buddypress sans avoir à désactiver complètement Gravatar.

Voici le code dans le fichier bp-custom.php:

<?php

// disable gravatar  
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

//change Buddypress default avatar
define ( 'BP_AVATAR_DEFAULT', 'http://localhost/mysite/wp- 
content/uploads/2017/08/profilpic.png' );
define ( 'BP_AVATAR_DEFAULT_THUMB', 'http://localhost/mysite/wp- 
content/uploads/2017/08/profilpic.png' );

?>
2
Haazna

Ok, donc je pense j'ai trouvé une solution et je voulais poster au cas où cela poserait problème à quelqu'un d'autre.

J'ai décidé de ne pas essayer de créer un avatar par défaut personnalisé avec buddypress, ce qui signifie que je ne parle plus d'utiliser le fichier bp-custom.php.

Au lieu de cela, j'ai choisi de créer une option gravatar personnalisée dans le backend de wordpress, en utilisant le fichier de fonction de mon thème enfant.

J'ai essayé plusieurs versions de code, mais voici ce que j'ai retenu:

add_filter( 'avatar_defaults', 'wpb_new_gravatar' );
function wpb_new_gravatar ($avatar_defaults) {
$myavatar = 'http://example.com/wp-content/uploads/2017/01/wpb-default- 
gravatar.png';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
} 

Ajoutez le code ci-dessus à votre fichier de fonction de thème et remplacez l’adresse de l’image fictive par l’image de votre gravatar/avatar par défaut de votre choix pour tous les utilisateurs de wordpress.

Ensuite, allez dans paramètres> discussion dans la zone d'administration de wordpress.

Vous devriez voir votre image d’avatar personnalisée au bas de la liste des images d’avatar.

Choisissez par défaut et enregistrez.

Désormais, cette image sera la valeur par défaut pour tous les utilisateurs du site, y compris buddypress, tout en permettant aux utilisateurs de télécharger les leurs par l'intermédiaire de buddypress ou de la zone d'administration wordpress via gravatar.

2
Haazna