アイコンを変えるにはGravatarを利用するしかないのか?

↬ishii00141.stars.ne.jp/?c=206

設定の「タイプ別プロフィールを有効化」で「投稿者プロフィールのみ」を選択した場合にユーザーの「プロフィール写真」がGravatarのアイコンになってしまう問題について。

“プロフィール写真の下に「オリジナルプロフィール画像」の項目がありますが、この画像をプロフィール写真とは別のものにした状態でActivityPubに接続した際、プロフィール写真(Gravatar設定画像)が表示されていたので、Gravatarで設定した画像が優先して表示されるみたいですね。

なお、WordPressをインストールした時点で、プロフィール写真にメインブログで先に設定していたGravatarの画像が表示されている状態だったので、Gravatar未設定で画像が表示されるのかどうかは確認できていません。

そして、ヘッダーの画像は、WordPressでヘッダー用に設定した画像が表示されるようです。”
ActivityPubプラグインの設定画面解説と使ってみての感想【WordPress】 | 続・緑色日和。
https://midori-biyori.com/archives/activitypub-setting

この人の場合は、両方を設定したらGravatarの画像の方が優先された状態で、「プロフィール画像」ではなく「プロフィール写真(Gravatar設定画像)」の方が優先されたみたいだけど、私の場合は、Gravatar未設定で「プロフィール写真(Gravatarアイコン)」の方が優先された。

Gravatarで設定しなければいけないのか?

Gravatarは会員登録を求められるから、できれば利用したくない。

コメント

  1. ishii ishii より:

    #Gemini に提案してもらった次のコードをfunctions.phpに入れてみたけれど、マストドンの方のアイコンはGravatarアイコンのままで変わらない。(/_・、)
    ‘upladed_avatar’はデータベースで使われてたキー。uploadedの誤りではなく、そのスペルだった。

    function custom_activitypub_user_avatar_url( $avatar_url, $user_id ) {
    $user = get_user_by( ‘id’, $user_id );
    $avatar = get_user_meta( $user_id, ‘upladed_avatar’, true ); // ユーザーメタキーを適切に設定

    if ( $avatar ) {
    // ユーザーメタデータにアバター情報がある場合
    $avatar_url = $avatar; // または wp_get_attachment_url($avatar) など
    } else {
    // ユーザーメタデータにアバター情報がない場合
    $avatar_url = ‘https://hitorinezumi.cloudfree.jp/wp/wp-content/uploads/ishii-icon.png’; // デフォルトのアバターURLを指定
    }

    return $avatar_url;
    }
    add_filter( ‘activitypub_user_avatar_url’, ‘custom_activitypub_user_avatar_url’, 10, 2 );

    • マストドンでGravatarアイコンにしない方法のGemini案

      設定の「タイプ別プロフィールを有効化」で「投稿者プロフィールのみ」を選択した場合にユーザーの「プロフィール写真」がGravatarのアイコンになってしまう問題について。 #Gemini の新たな提案。

      WordPress内のプロフィール写真はブログテーマCocoonによって、Gravatarを使わずにアップロードしたプロフィール画像(データベースのwp_usermeta テーブルの‘upladed_avatar’キーのURL、upladedはuploadedではない)にすることができます。しかし、プラグインActivityPubでFediverseにアバターアイコンを送る際には、Gravatarアイコンになってしまいます。それを改善したいと思っています。方法を教えてください。

      データベースでupladed_avatarキーの存在を確認されたのですね。貴重な情報ありがとうございます。これで、upladed_avatarキーがCocoonテーマによって意図的に使用されていることが確実になりました。

      この確認結果を踏まえ、先ほど修正したコードは以下の通り、upladed_avatarキーを使用するようにしてください。

      修正後のコード:

      1. ユーザーのアバターURLを取得する関数を作成する

      PHP

      function get_cocoon_uploaded_avatar_url( $user_id ) { $avatar_url = get_user_meta( $user_id, 'upladed_avatar', true ); return $avatar_url;}

      2. pre_get_avatar_data()関数を修正する

      PHP

      public static function pre_get_avatar_data( $args, $id_or_email ) { // ... (既存のコード) ... if ( $avatar ) { // ... (既存のコード) ... } else { // コメントにアバターが設定されていない場合、ユーザーのアバターを取得 if ( is_numeric( $id_or_email ) ) { $user_id = $id_or_email; } elseif ( is_object( $id_or_email ) && property_exists( $id_or_email, 'user_id' ) ) { $user_id = $id_or_email->user_id; } else { return $args; // ユーザーIDが取得できない場合は、元の処理を続ける } $user_avatar_url = get_cocoon_uploaded_avatar_url( $user_id ); if ( $user_avatar_url ) { if ( empty( $args['class'] ) ) { $args['class'] = array(); } elseif ( is_string( $args['class'] ) ) { $args['class'] = explode( ' ', $args['class'] ); } $args['url'] = $user_avatar_url; $args['class'][] = 'avatar-activitypub'; $args['class'][] = 'u-photo'; $args['class'] = array_unique( $args['class'] ); } } return $args;}

      3. get_avatar_url()関数を修正する

      PHP

      public static function get_avatar_url( $id_or_email ) { if ( is_numeric( $id_or_email ) ) { $comment = get_comment( $id_or_email ); if ( $comment ) { $avatar_url = get_comment_meta( $comment->comment_ID, 'avatar_url', true ); if ( $avatar_url ) { return $avatar_url; } } // コメントにアバターが設定されていない場合、ユーザーのアバターを取得 return get_cocoon_uploaded_avatar_url( $id_or_email ); } elseif ( is_object( $id_or_email ) && property_exists( $id_or_email, 'comment_ID' ) ) { return get_comment_meta( $id_or_email->comment_ID, 'avatar_url', true ); } return false;}

      重要な注意点:

      データベースの直接操作は慎重に行ってください。コードの変更前に必ずバックアップを取得してください。変更後のコードをテストして、期待通りに動作することを確認してください。

      これらの修正を行うことで、ActivityPubプラグインでFediverseに送信されるプロフィール画像を、Cocoonテーマでアップロードした画像に変更できるはずです。

      #ActivityPub #Cocoon #Gravatar #Mastodon #WordPress #バグ #プラグイン #マストドン

      https://ishii00141.stars.ne.jp/20250315-1817-1864/

  2. ishii ishii より:

    #Gravatar のアイコンが更新されても #Mastdon のアイコンが更新されないというバグ。このスレッドでは未解決。

    “Quick summary

    The avatar of the WordPress user is not updated in Mastodon after being followed
    Steps to reproduce

    Assaign an avatar to the WordPress user via Gravatar
    Follow WordPress user in Mastodon
    Upload a new avatar for the user in Gravatar. Set it as default
    Update user info in Mastdon

    What you expected to happen

    Avatar is updated to the current Gravatar picture
    What actually happened

    In Mastdon, you still see the first avatar from Gravatar
    Unfollow and refollow doesn’t make any difference

    User Avatar Not Updated · Issue #669 · Automattic/wordpress-activitypub
    https://github.com/Automattic/wordpress-activitypub/issues/669

    • WordPressがGravatarアイコンを送信してる。

      #WordPress のユーザーアイコンが変わっても #マストドン のアイコンが変わらないのは、受け取る側のマストドンの問題だという意見があるかもしれないが、WordPress内のデータを検索したら、送信トレイにGravatarアイコンを送信している形跡がある。

      確認サイト:https://hitorinezumi.cloudfree.jp/wp/ishii/

      この「送信トレイ」はWordPressでは確認できないので、データベースで確認してみた。

      このID=2922の詳細を確認してみたら、post_author は 2 。これは「いしい@長文」のこと。post_date は 2025-03-13 19:27:05 。mastodon-japan.net でアイコンが更新されたか確認した時だと思う。「ドメイン/wp/?post_type=ap_outbox&p=2922」のURL。そして、post_content を確認したら、次のような記述があった。検索してヒットした場所である。

      "icon":{"type":"Image","url":"https:\/\/secure.gravatar.com\/avatar\/0f59685a378fe7f3b9c22ada30ca3408?s=120\u0026#038;d=mm\u0026#038;r=g"},"published":"2025-02-27T21:08:18Z",

      これはGravatarアイコンで送信しているということではないのか?

      Gravatarアイコンが送られてきたら、マストドンの側では、そのアイコンをユーザーのアイコンとするしかないのではないかと思うが、素人である私の解釈は間違っているか?

      #ActivityPub #Fediverse #Gravatar #Mastodon #WordPress #バグ #プラグイン #マストドン

      https://ishii00141.stars.ne.jp/20250314-0827-1836/

  3. ishii ishii より:

    アバターを変えるプラグインをインストールしたが、マストドンのアイコンを変える効果はなかった。 #Cocoon で #WordPress 内でのアイコンを変えた場合と同じ。 #ActivityPub に対応していない。

    “現在のユーザーがメディア権限を持っている場合、アバターアップロードフィールドをユーザープロフィールへ追加します。Gravatar のように、要求されたサイズをオンデマンドで生成します ! シンプルで軽量です。

    ユーザープロフィールを編集で、新しい「アバター」フィールドまで下にスクロールするだけです。プラグインはトリミングとサイズ変更を処理します !

    Simple Local Avatars – WordPress プラグイン | WordPress.org 日本語
    https://ja.wordpress.org/plugins/simple-local-avatars/

  4. ishii ishii より:

    #メモ
    “そして結論としては、Gravatarを使う必要はありません。

    記事の前半ではGravatarとは何かを、そしてなぜ必要ないのかを解説します。

    また、アバターを設定するならプラグインがおすすめなので、記事の後半ではその方法を解説します。

    WordPressのGravatarとは?おすすめのアバター(アイコン)設定方法を解説 | WordPressではじめるブログ
    https://rollin.co.jp/wordpress/how-to-use-wordpress/978/

    ただし、 #ActivityPub を使わない場合に限るのだろう。今は…。

タイトルとURLをコピーしました