投稿

ラベル(php)が付いた投稿を表示しています

しぶとい「extract_reply_context」関数

 失敗例だけどメモっておく。 WordPressのプラグイン「ActivityPub」には、コメント欄からリプライした際に、コメント欄にメンションを記載しなくても、同じスレッド内の全てのアカウントにメンションして通知を送る仕様があり、これを防ぎたいと試行錯誤した。 Fediverseに届いた時に投稿にメンションが記載されないようにすることはできた。次のコードをfunctions.phpに追加する。  // Fediverseで自動追加メンションが表示されないようにする(ただし、通知は防げない) function my_filter_comment_text( $content, $comment, $args ) {     // 常に元のコメントコンテンツで $content を上書きする     $content = $comment->comment_content;     // その後の処理は元のフィルターチェーンに沿って行われます     return $content; } add_filter( 'comment_text', 'my_filter_comment_text', 5, 3 ); しかし、この方法では通知は防げない。 自動で付加されるメンションは 'extract_reply_context'という関数で作られている。通知に関しては、この関数が実行されている次の関数が怪しいと思った。 /** * Helper function to get the @-Mentions from the comment content. * * @return array The list of @-Mentions. */ protected function get_mentions() {   \add_filter( 'activitypub_extract_mentions', array( $this, 'extract_reply_context' ) );   /**    * Filter the mentions in t...

Fediverseの投稿を他のマストドンのインスタンスで表示するためのブックマークレットとWordPress用コード

自分が使っているマストドンのインスタンスとは異なるインスタンスでの投稿をブーストしたりするために自分が使っているインスタンスで表示するためのブックマークレットのコードは次の通り。 javascript:(function(){window.open('https://ドメイン/authorize_interaction?uri='+encodeURIComponent(document.URL));})(); このコードを基に、プラグイン「ActivityPub」 でFediverseの一部となったWordPressの記事をマストドンのインスタンスで表示させるボタンのコード。WordPressの記事ページに表示する。 次のphpコードをfunctions.phpに追加し、ウィジェットの「カスタムHTML」などに [mastodon_share_hybrid] と記述する。 シェアボタンの上に「マストドンで表示」ボタンを設置 | いしい@試行錯誤 https://ishii00141.stars.ne.jp/20250322-1621-2080/ function mastodon_share_hybrid() { $instances = array( 'mastodon-japan.net' => 'mastodon-japan.net', 'mastodon.social' => 'mastodon.social', 'fedibird.com' => 'fedibird.com', 'mstdn.jp' => 'mstdn.jp', 'custom' => 'ドメイン記入' // 自由記入欄を表示するための選択肢 ); $output = '<select id="mastodon-instance-select">'; $output .= '<option value="">マストドンで表示</option>'; ...