プラグイン「ActivityPub」が7.6.0に更新された。

ActivityPub – WordPress plugin | WordPress.org
https://wordpress.org/plugins/activitypub/#developers

7.6.0 – 2025-11-11

Added

  • Add bidirectional transforms between reply and embed blocks for improved user experience.
  • Add Command Palette integration for quick navigation to ActivityPub admin pages
  • Added a new ap_object post type and taxonomies for storing and managing incoming ActivityPub objects, with updated handlers
  • Added a privacy option to hide followers and following lists from profiles while keeping follow relationships intact.
  • Added a scheduled task and setting to automatically purge old inbox items, helping maintain site performance and storage control.
  • Added fallback to trigger create handling when updates fail for missing posts or comments, ensuring objects are properly created.
  • Added immediate dispatch for Accept activities to speed up quoted posts while keeping scheduled processing for compatibility with other instances.
  • Added new configuration options to better manage traffic spikes when federating posts, allowing finer control over retry limits, delays, and batch pauses.
  • Added support for FEP-8fcf follower synchronization, improving data consistency across servers with new sync headers, digest checks, and reconciliation tasks.
  • Add LiteSpeed Cache integration to prevent ActivityPub JSON responses from being cached incorrectly. Includes automatic .htaccess rules and Site Health check to ensure proper configuration.
  • Add quote visibility setting for Classic Editor users.
  • Add unified attachment processor for handling ActivityPub media imports from both remote URLs and local files, with automatic media block generation and Classic Editor support.
  • Integrate Federated Reply block with WP.com Reader’s post share functionality, allowing users to reply to ActivityPub posts directly from the Reader.

Changed

  • Added support for FEP-3b86 Activity Intents, extending WebFinger and REST interactions with new Create and Follow intent links.
  • Added support for the latest NodeInfo (FEP-0151), with improved federation details, staff info, and software metadata for better ActivityPub compliance.
  • Extended inbox support for undoing Like, Create, and Announce activities, with refactored undo logic and improved activity persistence.
  • Improved Classic Editor integration by adding better media handling and full test coverage for attachments, permissions, and metadata.
  • Improved delivery of public and follower activities by expanding local recipient handling to include all ActivityPub-capable users and follower collections.
  • Improved inbox performance by batching and deduplicating activities, reducing redundant processing and improving handling during high activity periods.
  • Improved REST API responses with smarter context handling.
  • Improved REST collection pagination by using explicit total item counts for more accurate results.
  • Moved default visibility handling from the server to the editor UI, ensuring consistent and flexible ActivityPub visibility settings across both block and classic editors.
  • Prevented self-announcing by ignoring announces from the blog actor, while still processing announces from user and external actors.
  • Refactored activity handling to support multiple recipients per activity, allowing posts and interactions to be linked to several local users at once.
  • Refactored avatar handling into a new system that stores and manages avatars per remote actor, improving reliability and preparing for future caching support.
  • Refactored the inbox system to use a shared inbox, storing activities once with multiple recipients for improved efficiency and reduced duplication.
  • Reorganize integration loader and move Stream integration into dedicated folder structure.
  • Reply posts: do not display post title before @mentions in posts that are replies to somebody else
  • Simplified configuration by always enabling the shared inbox and removing its separate setting, UI field, and related logic.
  • Simplified inbox storage settings, allowing certain activities (like deletes) to be skipped to reduce unnecessary database use.
  • Simplify follow() API return types to int|WP_Error for better predictability.
  • Updated inbox handling to support multiple users receiving the same activity and improve overall data consistency.
  • Updated mailer hooks to send notifications only when activities are successfully handled, preventing emails for failed events.
  • Update plugin short description to be more user-friendly.

Fixed

  • Added a safeguard to ensure the plugin works correctly even when no post types are selected.
  • Added a safety check to prevent errors when resolving comment author hostnames without a valid IP address.
  • Fixed activity processing to handle QuoteRequest and other edge cases more reliably.
  • Fixed an issue with post content templates to ensure the correct fallback is always applied.
  • Fixed fatal error when transformer Factory receives WP_Error objects.
  • Fixed HTML entity encoding in extra field names when displayed on ActivityPub platforms
  • Fixed typo in example, improve quoting description.
  • Fix Following table error message to display user input instead of empty string when webfinger lookup fails.
  • Fix infinite recursion when storing remote actors with mentions in their bios
  • Fix local inbox delivery to use internal REST API instead of HTTP, enabling local follows and proper boost counting.
  • Fix logic errors in Move handler: remove redundant assignment and fix variable name collision.
  • Fix public key retrieval for GoToSocial profiles with path-based key URLs.
  • Improved actor resolution by prioritizing blog actor detection before remote actor checks and refining home page URL handling.
  • Improved handling of empty fields for better compatibility with Pixelfed and more consistent fallback behavior across actor names, URLs, and related data.
  • Improved hashtag encoding for consistent formatting.
  • Improved Jetpack integration by initializing it during the WordPress startup process.
  • Refactored Mastodon import handling to use consistent array-based data, improving reliability and compatibility across all import scenarios.
  • Reply block now properly validates ActivityPub URLs before setting inReplyTo field

Google翻訳

7.6.0 – 2025-11-11

Added

  • 返信ブロックと埋め込みブロック間の双方向変換を追加し、ユーザーエクスペリエンスを向上させました。
  • コマンドパレット統合を追加し、ActivityPub管理ページへの素早いナビゲーションを実現しました。
  • 新しいap_object投稿タイプと、受信したActivityPubオブジェクトの保存と管理のためのタクソノミーを追加しました。ハンドラーも更新しました。
  • フォロー関係を維持しながら、フォロワーとフォロー中のリストをプロフィールから非表示にするプライバシーオプションを追加しました。
  • 古い受信トレイアイテムを自動的に削除するスケジュールタスクと設定を追加し、サイトのパフォーマンスとストレージ管理を維持できるようにしました。
  • 不足している投稿やコメントの更新に失敗した場合、作成処理をトリガーするフォールバックを追加し、オブジェクトが適切に作成されるようにしました。
  • Acceptアクティビティの即時ディスパッチを追加し、引用投稿の高速化を図りながら、他のインスタンスとの互換性を保つようにスケジュール処理を維持しました。
  • 投稿を統合する際のトラフィックスパイクをより適切に管理するための新しい設定オプションを追加し、再試行制限、遅延、バッチ一時停止をより細かく制御できるようになりました。
  • FEP-8fcfフォロワー同期のサポートを追加し、新しい同期ヘッダー、ダイジェストチェック、リコンシリエーションタスクにより、サーバー間のデータ整合性を向上させました。
  • ActivityPub JSONレスポンスが誤ってキャッシュされるのを防ぐため、LiteSpeed Cacheとの連携を追加しました。適切な設定を保証するため、自動.htaccessルールとサイトヘルスチェック機能も搭載しています。
  • クラシックエディターユーザー向けに引用の表示設定を追加しました。
  • リモートURLとローカルファイルの両方からのActivityPubメディアインポートを処理するための統合添付ファイルプロセッサを追加しました。自動メディアブロック生成とクラシックエディターのサポートも追加しました。
  • Federated ReplyブロックをWP.com Readerの投稿共有機能と連携させ、ユーザーがリーダーから直接ActivityPubの投稿に返信できるようにします。

Changed

  • FEP-3b86 Activity Intentsのサポートを追加し、WebFingerとRESTのインタラクションを新しいCreateおよびFollowインテントリンクで拡張しました。
  • 最新のNodeInfo (FEP-0151)のサポートを追加し、フェデレーションの詳細、スタッフ情報、ソフトウェアメタデータを改善することで、ActivityPubへの準拠を向上させました。
  • 「いいね!」、「作成」、「アナウンス」アクティビティの取り消しに対する受信トレイのサポートを拡張し、取り消しロジックをリファクタリングし、アクティビティの永続性を改善しました。
  • クラシックエディターとの統合を改善し、メディア処理を改善し、添付ファイル、権限、メタデータのテストカバレッジを完全に網羅しました。
  • ローカル受信者処理を拡張し、ActivityPub対応のすべてのユーザーとフォロワーコレクションを対象にすることで、パブリックアクティビティとフォロワーアクティビティの配信を改善しました。
  • アクティビティのバッチ処理と重複排除により、冗長な処理を削減し、アクティビティが集中する時間帯の処理を改善することで、受信トレイのパフォーマンスを改善しました。
  • よりスマートなコンテキスト処理により、REST APIレスポンスを改善しました。
  • 明示的なアイテム総数を使用することで、RESTコレクションのページネーションを改善し、より正確な結果を実現しました。
  • デフォルトの表示設定処理をサーバーからエディター UI に移動しました。これにより、ブロックエディターとクラシックエディターの両方で ActivityPub の表示設定の一貫性と柔軟性が確保されます。
  • ブログアクターからのアナウンスを無視することで自己アナウンスを防止し、ユーザーおよび外部アクターからのアナウンスは引き続き処理します。
  • アクティビティ処理をリファクタリングしてアクティビティごとに複数の受信者をサポートし、投稿やインタラクションを複数のローカルユーザーに同時にリンクできるようになりました。
  • アバター処理を、リモートアクターごとにアバターを保存および管理する新しいシステムにリファクタリングしました。これにより信頼性が向上し、将来のキャッシュサポートに備えることができます。
  • 受信トレイシステムをリファクタリングして共有受信トレイを使用し、複数の受信者を持つアクティビティを一度に保存することで、効率性を向上させ、重複を削減しました。
  • 統合ローダーを再編成し、Stream 統合を専用のフォルダー構造に移動しました。
  • 返信投稿: 他のユーザーへの返信である投稿では、@メンションの前に投稿タイトルを表示しません。
  • 共有受信トレイを常に有効にし、個別の設定、UI フィールド、および関連ロジックを削除することで、設定を簡素化しました。
  • 受信トレイの保存設定を簡素化し、特定のアクティビティ(削除など)をスキップして不要なデータベース使用を削減できるようになりました。
  • follow() API の戻り値の型を int|WP_Error に簡素化することで、予測可能性を高めました。
  • 受信トレイの処理を更新し、複数のユーザーが同じアクティビティを受信した場合に対応し、全体的なデータの一貫性を向上させました。
  • メールフックを更新し、アクティビティが正常に処理された場合にのみ通知を送信することで、失敗したイベントに関するメール送信を防止しました。
  • プラグインの簡単な説明をよりユーザーフレンドリーに更新しました。

Fixed

  • 投稿タイプが選択されていない場合でもプラグインが正しく動作するように安全対策を追加しました。
  • 有効なIPアドレスを持たないコメント投稿者のホスト名を解決する際にエラーが発生しないように、安全チェックを追加しました。
  • QuoteRequestなどのエッジケースをより確実に処理できるようにアクティビティ処理を修正しました。
  • 投稿コンテンツテンプレートの問題を修正し、常に正しいフォールバックが適用されるようにしました。
  • Transformer FactoryがWP_Errorオブジェクトを受け取った際に発生する致命的なエラーを修正しました。
  • ActivityPubプラットフォームで表示される追加フィールド名のHTMLエンティティエンコーディングを修正しました。
  • 例のタイプミスを修正し、引用の説明を改善しました。
  • Webfingerルックアップが失敗した場合に、空の文字列ではなくユーザー入力を表示するように、Followingテーブルのエラーメッセージを修正しました。
  • バイオにメンションがあるリモートアクターを保存する際の無限再帰を修正しました。
  • ローカル受信トレイへの配信を修正し、HTTPではなく内部REST APIを使用することで、ローカルフォローと適切なブーストカウントを有効にしました。
  • Moveハンドラーのロジックエラーを修正しました。冗長な代入を削除し、変数名の衝突を修正しました。
  • パスベースのキーURLを使用したGoToSocialプロフィールの公開鍵取得を修正しました。
  • リモートアクターのチェックよりもブログアクターの検出を優先し、ホームページURLの処理を改善することで、アクターの解決を改善しました。
  • Pixelfedとの互換性を高め、アクター名、URL、関連データ全体でより一貫したフォールバック動作を実現するために、空フィールドの処理を改善しました。
  • 一貫したフォーマットを実現するために、ハッシュタグエンコーディングを改善しました。
  • WordPressの起動プロセス中にJetpackを初期化することで、Jetpackとの統合を改善しました。
  • Mastodonのインポート処理をリファクタリングし、一貫性のある配列ベースのデータを使用することで、すべてのインポートシナリオにおける信頼性と互換性を向上させました。
  • 返信ブロックは、inReplyToフィールドを設定する前に、ActivityPub URLを適切に検証するようになりました。

未分類
管理人のマストドンアカウントへのリンクなど

コメント

  1. ishii-m より:

    #ActivityPub #Mastodon
    日本語のハッシュタグがデコードされずに表示されてる。

    • ishii ishii より:

      #ActivityPub #Mastodon
      日本語のハッシュタグがデコードされてない問題は、こちらが原因。
      wp_posts テーブルの post_content を見ると次のようになっていて、日本語のハッシュタグが異常なことが分かる。

      "published":"2025-11-11T22:36:45Z","tag":[{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/activitypub/","name":"#activitypub"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/fediverse/","name":"#fediverse"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/wordpress/","name":"#wordpress"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/","name":"#E38397E383A9E382B0E382A4E383B3"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/%e4%bb%95%e6%a7%98/","name":"#E4Bb95E6A798"}],
      • ishii ishii より:

        #ActivityPub #Mastodon
        #ChatGPT に原因を推測してもらった。
        --

        「`%E3%81%82` → `E38182`」という変化が起きていて、
        **デコードされてはいない(「あ」になっていない)** — つまり `%` だけが消えている状態ですね。
        
        この場合、よくあるデコード処理 (`urldecode()`) ではなく、
        **「% 記号が単純に削除されてしまっている」** ことになります。
        
        ---
        
        ## ✅ 主な可能性(% が削除される原因)
        
        ### 🧩 1. `sprintf()` / `printf()` / `vsprintf()` に直接渡している
        
        このケースが最も多いです。
        
        `printf()` 系の関数では、`%` は **フォーマット指定子** として解釈されます。
        つまり、文字列中の `%E3` のような部分を「書式指定」と誤認しようとして、
        結果的に `%` が消えてしまう(またはエラーを防ぐために無視される)ことがあります。
        
        #### ❌ 悪い例:
        
        ```php
        <?php
        $str = "%E3%81%82";
        printf($str); // 結果: E38182 (% が消える)
        ```
        
        #### ✅ 対策(方法1: echoを使う)
        
        ```php
        echo $str; // 結果: %E3%81%82 (OK)
        ```
        
        #### ✅ 対策(方法2: printfのフォーマットを指定する)
        
        ```php
        printf("%s", $str); // 結果: %E3%81%82 (OK)
        ```
        
        ---
        
        ### 🧩 2. 文字列を `sprintf()` の中で組み立てている
        
        例えば以下のようなコードでも同じ現象が起きます。
        
        ```php
        <?php
        $str = "%E3%81%82";
        $msg = sprintf("URLエンコード結果: $str");
        echo $msg; // 結果: URLエンコード結果: E38182
        ```
        
        これも `$str` に含まれる `%` が「フォーマット指定子」と誤認されて消えています。
        
        ✅ 対処法:
        
        ```php
        $msg = sprintf("URLエンコード結果: %s", $str);
        echo $msg; // 結果: URLエンコード結果: %E3%81%82
        ```
        
        ---
        
        ### 🧩 3. 他の文字列フォーマット関数(例:`Log`関数など)
        
        フレームワーク(Laravelなど)の `Log::info()` や `Monolog` なども内部で `sprintf()` を使っていることがあります。
        そのため、`%` を含む文字列を直接渡すと同様の問題が発生します。
        
        ✅ 対処法:
        
        ```php
        \Log::info(sprintf("%s", $encodedUrl));
        // または
        \Log::info("URL: " . $encodedUrl);
        ```
        
        ---
        
        ## 🧠 まとめ
        
        | 状況           | 原因                       | 対処法                   |
        | ---------------------- | -------------------------------------------- | --------------------------------------- |
        | `%E3%81%82` → `E38182` | `printf()` / `sprintf()` が `%` をフォーマット指定子と誤解 | `echo`を使う、または`printf("%s", $str)`のようにする |
        | `Log::info()`などで発生   | 内部で`sprintf()`を使用している            | 文字列連結 (`.`) または `%s` 指定を使う        |
        ---
        
      • ishii ishii より:

        #ActivityPub #Mastodon
        #Gemini に原因を推測してもらった。
        /plugins/activitypub/includes/transformer/class-post.php のコードの一部
        --

        はい、このコードは**非常に怪しい**です。このメソッドは、まさに ActivityPub オブジェクトのタグリストを構築しており、**`name` フィールドに「%」が抜けた文字列を設定する原因**が潜んでいる可能性が高いです。
        
        -----
        
        ## 🛑 「%」消失の最有力候補
        
        問題は、ハッシュタグオブジェクトを組み立てている以下の部分です。
        
        ```php
        // ... 中略 ...
                        $tags[] = array(
                            'type' => 'Hashtag',
                            'href' => \esc_url( \get_tag_link( $post_tag->term_id ) ),
                            'name' => esc_hashtag( $post_tag->slug ), // 🚨 ここが非常に怪しい
                        );
        // ... 中略 ...
        ```
        
        ### 1\. `$post_tag->slug` の値
        
        WordPress のタグのスラッグ (`$post_tag->slug`) は、URL に適した形にするため、日本語タグの場合は**パーセントエンコードされた値**(例: `e38397e383a9e382b0e382a4e383b3` のような、**`%`が除去された**16進数バイト列)になることが多いです。
        
          * **通常のタグ名**: `プラグイン`
          * **タグスラッグ**: `プラグイン` (ただし、データベースには URL エンコードされた形で格納されることが多い)
        
        もし、`$post_tag->slug` がタグ名そのもの (`プラグイン`) ではなく、**URLエンコードされた文字列から`%`を除去したバイト列**(例: `e38397e383a9...`)を返している場合、その値が次の関数に渡されます。
        
        ### 2\. `esc_hashtag()` 関数が原因
        
        `name` フィールドに適用されている **`esc_hashtag()`** 関数が、今回の問題の**直接的な原因**である可能性が非常に高いです。
        
        この関数は、提供されたコードには定義されていませんが、名前から判断して、**文字列の先頭に `#` を付ける処理**を行っていると考えられます。
        
        **シナリオ:**
        
        1.  `$post_tag->slug` が **`e38397e383a9...`** という、`%` が抜けたバイト列を返す。
        2.  `esc_hashtag()` が、この値に `#` を付けて **`#e38397e383a9...`** を生成する。
        
        この結果、**ご提示の出力データ**と完全に一致する値が `name` フィールドに格納されてしまいます。
        
        **✅ なぜタグ名ではなくスラッグを使っているか?**
        
        タグの `name` フィールドは、本来タグの**表示名** (`#プラグイン`) を入れるべきです。しかし、ここではスラッグ (`$post_tag->slug`) を使っているため、以下のような状況が考えられます。
        
          * **バグ**: 開発者が誤ってスラッグ(URLパーツ)を表示名として使ってしまった。
          * **不適切なデータ使用**: `get_tag_link()` で得られる `href` にはパーセントエンコードされたスラッグが使われるのに対し、`name` にもそのスラッグをそのまま使ってしまった。
        
        ### 解決策
        
        `name` フィールドで `esc_hashtag()` に渡すべきは、スラッグ (`$post_tag->slug`) ではなく、**タグの表示名** (`$post_tag->name`) です。
        
        **修正案:**
        
        ```php
        // 修正前の問題のコード
        'name' => esc_hashtag( $post_tag->slug ), 
        
        // 修正後のコード (スラッグではなく表示名を使用)
        'name' => esc_hashtag( $post_tag->name ), 
        ```
        
        `$post_tag->name` は、通常、デコード済みの正しい日本語文字列(`プラグイン`)を返します。これにより、`name` フィールドは `"#プラグイン"` となり、問題が解消するはずです。
        • ishii ishii より:

          で、 #WordPress が実際にどのようにスラッグを作っているか、記事のタイトルに「%E3%81%82」と入れて、生成されたスラッグを確認したら「e38182」になっていた。%が抜けていた。

          • ishii ishii より:

            URLとスラッグの関係について。
            タグのURLにはスラッグが使われていないのに、どうしてスラッグが用意されているのか疑問に思ったので、 #Gemini に尋ねた。

            --
            はい、その場合でも **`slug` プロパティは必ず格納されています**。

            ---

            ## 💾 URLとスラッグの関係

            WordPress のタグの URL に日本語が直接使われているように見えても、`slug` は内部データとして存在しています。

            ### 1. 内部データとしての `slug`

            `$post_tag->slug` は、そのタグを一意に識別するための**データベース上の値**であり、URL 形式の決定に重要な役割を果たします。WordPress のターム(タグやカテゴリー)は、構造上、必ず `term_id`、`name`、**`slug`** のプロパティを持っています。

            ### 2. URLエンコードとスラッグ

            ユーザーが見るブラウザのアドレスバーには、日本語(`プラグイン`)がそのまま表示されることがあります。しかし、これはブラウザが表示のためにデコードしているだけで、**実際にはサーバーへは URL エンコードされた形式で送信されています**。

            #### URL の送信形式

            | 表示 | サーバーへの送信形式 | 内部の `slug` |
            | :--- | :--- | :--- |
            | `~/tag/プラグイン` | `~/tag/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3` | `e38397e383a9...` (あなたのケース)|

            ### 3. スラッグが使われる場所

            たとえ URL に日本語名が使われている場合でも、WordPress がそのタグをデータベースから読み出す際、URL パス(`プラグイン`の部分)を解析して**スラッグ**や**ID**を特定します。スラッグは、クエリや内部の処理で使われる、必須の識別子です。

            したがって、ActivityPub プラグインが `$post_tags` を読み込んだ時点で、そのオブジェクトにはあなたのデータベースに格納されている `$post_tag->slug` の値(今回の場合は `%` が抜けたバイト列)が含まれています。

  2. ishii ishii より:

    #ActivityPub #Mastodon
    "一貫したフォーマットを実現するために、ハッシュタグエンコーディングを改善しました。
    "
    プラグイン「ActivityPub」が7.6.0に更新された。 | いしい@試行錯誤
    https://ishii00141.stars.ne.jp/20251112-0736-3881/

    たぶん、これが原因で、マストドンで見ると日本語のハッシュタグがデコードされずに表示されてる。

  3. ishii ishii より:

    #Mastodon で表示した時のリプライの認識が変かも。

    元の投稿に対して、コメントのスレッドは3つ。

    1. 元の投稿→7:43 AM(Mastodon)
    2. 元の投稿→7:53 AM(コメント)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)
    3. 元の投稿→このコメント

    Mastodonで元の投稿を表示した時の並び順は

    元の投稿→7:53 AM(コメント)→7:43 AM(Mastodon)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)

    スレッド 2.が繋がっているように見えない。7:53 AM(コメント)を表示すれば、スレッドが繋がっているように見えるのだけど…。

    • ishii ishii より:

      #Mastodon で元の投稿を表示した時の並び順は次のようになった。

      元の投稿→7:53 AM(コメント)→8:57 AM(コメント)→7:43 AM(Mastodon)→8:29 AM(Mastodon)→8:33 AM(コメント)→8:37 AM(コメント)

  4. いしい より:

    #ActivityPub #Mastodon
    リプライが1つしか ないことになってる。
    実際は、このリプライを含めて4つ。

  5. ishii ishii より:

    #ActivityPub #Mastodon
    テーブルを確認したら、wp_commentmeta の meta_key に _activitypub_remote_actor_id が追加されてる。avatar_url が無くなったかもしれない。

    • ishii ishii より:

      #ActivityPub #Mastodon
      _activitypub_remote_actor_id の meta_value が1507で、これが私のMastodonのidだと思うのだけど、その数字が何を意味するのか分からない。アイコンと表示名をどのように取得しているのか分からない。avatar_urlの方はMastodonのサイトのpng画像にアクセスしてた。

      • ishii ishii より:

        1507は wp_posts テーブルの IDだった。
        post_data は 2025-03-08 16:02:44 なんだけど、post_modified が 2025-11-12 09:14:07。
        IDの番号か小さいから、古くて関係ないかと思ったけれど、更新日が今日だった。

        post_type が ap_actor で post_title が「いしい」だった。
        そして、post_content のJSONデータの中に、更新後の最新のアイコンのURLが含まれていた。
        どうやら、ここから取得しているらしい。

        • ishii ishii より:

          フォローできない、リプライが届かないという問題が解決して、この投稿の直前にフォローできたようだから、
          「2025-03-08 16:02:44」はフォローした日時かもしれない。
          このデータが、wp_posts テーブルにあって、更新されていたとは…。

          "「REST API アクセス制限」をオフにした後のリプライテストだよ。既にフォローはできた容体。(公開)
          2025年3月08日 16:05
          "
          いしい: "@ishii 「REST API アクセス制限」をオフにした…
          " - Mastodon
          https://mastodon.social/@ishii00141/114125538444309277

          • ishii ishii より:

            アバターを取得するコードは class-avatars.php にある。

            
            $avatar = null;
            
            // First, try to get avatar from remote actor.
            $remote_actor_id = \get_comment_meta( $id_or_email->comment_ID, '_activitypub_remote_actor_id', true );
            if ( $remote_actor_id ) {
              $avatar = Remote_Actors::get_avatar_url( $remote_actor_id );
            }
            
            // Fall back to avatar_url comment meta for backward compatibility.
            if ( ! $avatar ) {
              $avatar = \get_comment_meta( $id_or_email->comment_ID, 'avatar_url', true );
            }
            
  6. ishii ishii より:

    #ActivityPub
    メンションのメール通知が大量に届いてた。
    メンションしたのは、このブログのコメント欄から。
    一つだけ、Mastodonからのメンションがあったけど…。
    自分自身のメンション(コメント)の通知はいらないな…。

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