Fehlende Avatare in BuddyPress

Notiz für mich selbst bzw. via Google für die Welt: Wer eine WordPress-Multisite und darin BuddyPress als MultiBlog verwendet, der sieht je nach Site nicht alle Avatar-Bilder. Hier eine (hoffentlich) allgemein gültige Lösung des Problems.

Noch mal etwas ausführlicher:

Wer mit WordPress 3.9(.x) eine Multisite hostet, beispielsweise mehrere Sprachzweige, mit dem Ziel, BuddyPress mehrsprachig aufzusetzen, d.h. diesen als MultiBlog (BP_ENABLE_MULTIBLOG) betreibt, der bekommt das, was er erwartet: User registrieren sich jeweils in ihrem (Sprach-)Blog und erscheinen postwendend auch in den anderen (Sprach-)Zweigen.

Das gilt allerdings nicht für deren selbst hochgeladene Avatar-Bilder: Jeder sieht nur die Avatare, die in seiner eigenen (Sprach-)Site hochgeladen worden sind – was scheinbar so gewünscht ist, und sich nach Durchsicht des $blogroot/wp-content/uploads belegen lässt. Das heißt: Jeder User müsste also streng genommen alle (Sprach-)Zweige abklappern und überall den Avatar definieren. Das ist natürlich Unfug.

Das Problem scheint seit Jahr und Tag bekannt zu sein. Eine allgemein gültige Lösung habe ich trotz emsigem Googlen nicht finden können – obwohl verschiedenste BuddyPress-Betreiber genau dies kritisieren.

Daher hier meine Variante:

  • Man bewege sich nach $blogroot/wp-content/plugins.
  • Sollte hier schon eine Datei namens bp-custom.php vorhanden sein, müsste man folgende beiden Anweisungen geschickt hinzufügen.
  • Existiert sie noch nicht, erstelle man die Datei bp-custom.php wie folgt:
<?php
define( 'BP_AVATAR_URL', 'http://' . $_SERVER["SERVER_NAME"] . dirname($_SERVER["SCRIPT_NAME"]) . '/wp-content/uploads' );
define( 'BP_AVATAR_UPLOAD_PATH', $_SERVER["DOCUMENT_ROOT"] . '/wp-content/uploads');
?>

Letzten Endes führt dies dazu, dass die Avatare für alle (Sprach-)Sites in $blogroot/wp-content/uploads/avatars landen.

Keine Kommentare möglich.