web-dev-qa-db-ja.com

ユーザーのアバターを変更するにはどうすればいいですか?

プラグインなしでユーザーのアバターを変更する方法はありますか?ユーザー>あなたのプロフィールに「アバターのアップロード」セクションがないのはなぜですか?

プラグインが使えません。私は盲目ですか、それともGravatarを使わざるを得ませんか; /

5
Wordpressor

アバターはあなたによってではなく、ユーザーによって制御されることを意図しています。そう、ある意味では、Gravatarサービスを使うことを強いられています。しかし、覚えておいて、それはユーザーがどこでも同じアバターを使用する能力を与え、あなたは常にコンテンツの評価に基づいてグラバターの表示を制限することができます(G、PG、PG-13、R)。

Gravatarはホスト型サービスです。そのため、プロファイルに[Upload Avatar]セクションがありません。

あなたは「プラグインを使用することはできません」とあなたは言いますが、実際にそれがあなたが機能を追加することができる唯一の方法です。 Gravatar以外の other を使用したい場合は、それをサポートするためのプラグインをロードする必要があります。ローカルアバターをサポートするプラグインがいくつかあります。

それ以外の場合は、Gravatarsとは何か、またその使用方法についてユーザーを教育することをお勧めします。

6
EAMann

デフォルトのgravatarを自分のものに置き換える方法を尋ねる場合は、このコードをfunctions.php(またはテーマでサポートされている場合はさらにcustom-functions.php)に配置できます。

add_filter( 'avatar_defaults', 'customgravatar' );

function customgravatar ($avatar_defaults) {
$myavatar = get_home_url('Template_directory') . '/images/mycustomgravatar.jpg';
$avatar_defaults[$myavatar] = "My Custom Logo";
return $avatar_defaults;
}

画像ファイルを作成してあなたのサイトの画像ディレクトリにアップロードします。 [マイカスタムロゴ]は、ダッシュボードの[ディスカッション]セクションにあるオプションのラベルです。このようにして、グラバターを持っていないすべてのユーザーが代わりにあなたのサイトのロゴを取得します。

6
Ray Mitchell

Ray Mitchellの回答よりもavatar_defaultsフックにもう少し多くのコードが必要です。このコードは wordpress codexページにあります そしてデフォルトのアバターフックに渡される正規化されたユーザーIDのおかげでうまくいきました。単純なユーザーIDまたはEメール、およびオブジェクトユーザー自身と一緒に機能します。

    // Apply filter
add_filter( 'get_avatar' , 'my_custom_avatar' , 1 , 5 );

function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $user = false;

    if ( is_numeric( $id_or_email ) ) {

        $id = (int) $id_or_email;
        $user = get_user_by( 'id' , $id );

    } elseif ( is_object( $id_or_email ) ) {

        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id;
            $user = get_user_by( 'id' , $id );
        }

    } else {
        $user = get_user_by( 'email', $id_or_email );   
    }

    if ( $user && is_object( $user ) ) {

        if ( $user->data->ID == '1' ) {
            $avatar = 'YOUR_NEW_IMAGE_URL';
            $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
        }

    }

    return $avatar;
}
1
jilt

どのテーマがアクティブになっているかによって異なります。たとえばMantraテーマにはオプションはありませんが、buddypressのデフォルトテーマにはオプションがあります。

0
mirola

あなたはそれをすることができます...あなたはあなたのメディアに画像を追加する必要があります。そのメディアファイルのURLをコピーして、edit userの下のカスタムユーザーのアバターURLに貼り付けます。痛い!

0
sherise

Avatar.jpgファイルを子テーマのimagesフォルダに追加し、次のコードを子テーマの関数ファイルに追加します。

add_filter( 'get_avatar' , 'add_custom_avatar' , 1 , 5 );

function add_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $user = false;

    if ( is_numeric( $id_or_email ) ) {

        $id = (int) $id_or_email;
        $user = get_user_by( 'id' , $id );

    } elseif ( is_object( $id_or_email ) ) {

        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id;
            $user = get_user_by( 'id' , $id );
        }

    } else {
        $user = get_user_by( 'email', $id_or_email );   
    }

    if ( $user && is_object( $user ) ) {

        if ( $user->data->ID == '1' ) {
            $avatar = sprintf( '%s/images/avatar.jpg', get_stylesheet_directory_uri() );
            $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
        }

    }

    return $avatar;
}
0
Dev

あるプロジェクトサイトで、アバター用に使用できる画像パス(思い出せばメディアページからアップロード)を受け入れるためのフィールドをユーザープロファイルエディタページに作成できたことを私は知っています。プラグインは必要ありません。

0
tw2113