web-dev-qa-db-ja.com

デフォルトのBuddypressアバターを変更すると、すべてのサイトのアバターに影響します(gravatarが原因で)

私はメンバーのデフォルトBuddypressアバターを変更する方法を探していて、それを部分的にここで単純なBuddypressコーデックス情報 だけを使って管理しています

しかし

コーデックス情報ではうまくいきません。 Gravatarがそれをオーバーライドしているように見えるので、コーデックスコードが機能する唯一の方法は、私が最初にgravatarを無効にした場合です。

私が今直面している問題は、buddypressのためのgravatarを無効にすることで、それがサイト全体で無効にされるので、通常のwordpressユーザー(例えばadmins/editors)はwordpressのバックエンドユーザープロファイルスペースを通して彼らのアバターを編集できない、なぜならそれはあなたが「グラバターのプロフィール写真を変更できる」ように設定されているからです。

しかし

すべてのユーザーは、自分のbuddypressアカウントページ(サイトにユーザーアカウントを持っている限り、登録方法に関係なく自動的にアクセスできます)にアクセスし、そこでアバターを変更できます。これはサイト全体に影響します。

それはすべてちょっと大丈夫です、しかしまったく正しくありません。

だから私は誰もが私が完全にgravatarを無効にする必要なしに新しいデフォルトのbuddypressアバターを設定することを可能にするだろう解決策を持っているかどうか疑問に思います。

これが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

それで私はthink私は解決策を見つけ、これが他の誰にとっても問題になる場合に備えて投稿したいと思いました。

私は特にbuddypressを使ってカスタムデフォルトアバターを作成しようとするのをやめることにしました、それは私がもうbp-custom.phpファイルを使うことについて話していないことを意味します。

代わりに、私は自分の子テーマの関数ファイルを使用して、ワードプレスバックエンド内にカスタムグラバターオプションを作成することにしました。

私は2、3の異なるコードバージョンを試してみましたが、これは私が固執することになったものです:

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;
} 

あなたのテーマ関数ファイルに上記のコードを追加して、すべてのワードプレスユーザーのためのあなたの望ましいデフォルトのグラビア/アバター画像でダミー画像アドレスを置き換えてください。

その後、wordpress管理者エリアの設定>ディスカッションに進みます。

カスタムアバター画像がアバター画像リストの一番下に表示されます。

それをデフォルトとして選択し、保存してください。

これで、その画像が、buddypressを含むすべてのサイトユーザーの間でデフォルトになりますが、それでもユーザーはbuddypressを通じて、またはgravatar経由でwordpress管理者エリアを通じて自分自身をアップロードすることができます。

1
Haazna