質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

有名プラグイン「Buddypress」の通知バグについて

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0回答

-5評価

0クリップ

158閲覧

投稿2018/08/09 22:56

編集2022/01/12 10:55

お世話になります。
PHPに相当詳しくないと難しいかと思いますが…、

###バグの内容

★概要
「コメントされた」という通知はあっても、「コメントに返信された」という通知がない。

同様の報告

https://bbpress.org/forums/topic/notification-when-reply-in-topic-receives-reply/

★詳細
WordPressの有名プラグイン「BBPress」で掲示板を作り、
「BuddyPress」から通知を受け取っています。

私が作った掲示板にAさんがコメントすると、
「Aさんにコメントされた」
と私に通知があります。

これはいいのですが、
しかし、

Aさんのコメントに誰かが返信しても、
「誰かに返信された」
とAさんに通知が来ないのです。

###試したコード
functions.phpに下記で未解決

php

/* notifications */ function jpr_buddypress_add_notification( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $author_id = 0, $is_edit = false, $reply_to = 0 ) { $current_topic_id = bbp_get_topic_id(); $ids_of_subs = bbp_get_topic_subscribers($current_topic_id); // this is who the notification goes to. whose post is replied to $topic_author_id = bbp_get_topic_author_id( $reply_to ); // Bail if somehow this is hooked to an edit action if ( !empty( $is_edit ) ) { return; } // Get author information // $topic_author_id = bp_loggedin_user_id(); $secondary_item_id = $author_id; // Hierarchical replies if ( !empty( $reply_to ) ) { $reply_to_item_id = bbp_get_topic_author_id( $reply_to ); } // pass the $reply_id to the function that formats the notification $topic_id = $reply_to; // Get some reply information $args = array( 'user_id' => $topic_author_id, 'item_id' => $topic_id, 'component_name' => bbp_get_component_name(), 'component_action' => 'bbp_new_reply', 'date_notified' => get_post( $reply_id )->post_date_gmt, ); // Notify the topic author if not the current reply author if ( $author_id !== $topic_author_id ) { $args['secondary_item_id'] = $secondary_item_id ; bp_notifications_add_notification( $args ); } // Notify the immediate reply author if not the current reply author if ( !empty( $reply_to ) && ( $author_id !== $reply_to_item_id ) ) { $args['secondary_item_id'] = $secondary_item_id; bp_notifications_add_notification( $args ); } } // remove the bbpress notification function so we don't get dupicate notifications remove_action( 'bbp_new_reply', 'bbp_buddypress_add_notification', 10, 7 ); add_action( 'bbp_new_reply', 'jpr_buddypress_add_notification', 10, 7 ); // remove the bbpress format notification function before using our custom function remove_filter( 'bp_notifications_get_notifications_for_user', 'bbp_format_buddypress_notifications', 10, 5 ); function jpr_format_buddypress_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) { // New reply notifications if ( 'bbp_new_reply' === $action ) { $topic_id = bbp_get_reply_id( $item_id ); $topic_title = bbp_get_reply_title( $item_id ); $topic_link = wp_nonce_url( add_query_arg( array( 'action' => 'bbp_mark_read', 'topic_id' => $topic_id ), bbp_get_reply_url( $item_id ) ), 'bbp_mark_topic_' . $topic_id ); $title_attr = __( 'Topic Replies', 'bbpress' ); if ( (int) $total_items > 1 ) { $text = sprintf( __( 'You have %d new replies', 'bbpress' ), (int) $total_items ); $filter = 'bbp_multiple_new_subscription_notification'; } else { if ( !empty( $secondary_item_id ) ) { $text = sprintf( __( 'You have %d new reply to %2$s from %3$s', 'bbpress' ), (int) $total_items, $topic_title, bp_core_get_user_displayname( $secondary_item_id ) ); } else { $text = sprintf( __( 'You have %d new reply to %s', 'bbpress' ), (int) $total_items, $topic_title ); } $filter = 'bbp_single_new_subscription_notification'; } // WordPress Toolbar if ( 'string' === $format ) { $return = apply_filters( $filter, '<a href="' . esc_url( $topic_link ) . '" title="' . esc_attr( $title_attr ) . '">' . esc_html( $text ) . '</a>', (int) $total_items, $text, $topic_link ); // Deprecated BuddyBar } else { $return = apply_filters( $filter, array( 'text' => $text, 'link' => $topic_link ), $topic_link, (int) $total_items, $text, $topic_title ); } do_action( 'jpr_format_buddypress_notifications', $action, $item_id, $secondary_item_id, $total_items ); return $return; } } add_filter( 'bp_notifications_get_notifications_for_user', 'jpr_format_buddypress_notifications', 10, 5 );

###環境
WordPress最新、インストール直後で、プラグインは上の2つしか入れていない状態です。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

terrace

2018/08/10 00:36

原因を知りたいのか、対応方法を知りたいのか、どうして欲しいのかがわからないのですが… 既にBuddypressのバグであると断じていらっしゃるので、公式フォーラムとかバグレポートを利用した方が良いかと思います。
退会済みユーザー

退会済みユーザー

2018/08/10 00:41

公式フォーラム案件だな
m.ts10806

2018/08/10 01:02

×PHPに相当詳しくないと難しい ○WordPressのこのプラグインに詳しくないと難しい  = 公式へどうぞ。 PHPに精通しているけどWordPressに精通していない人の方がおそらく多いです。
退会済みユーザー

退会済みユーザー

2018/08/10 02:05

ぶっちゃけ、バグだ何だといい切る前に仕様を確認したり、ユーザーの条件の違いを調べたほうが自力解決に近づくけどね。同じ環境を第三者が再現できないような話題ならなおさら自分で解決するために試行錯誤しなきゃいけない。WordPress上にユーザーアカウントを持っているかどうかとか、案外そういうところかもしれないよ。
退会済みユーザー

退会済みユーザー

2018/08/10 04:18

terraceさん、解決策ですね。mts10806さん、そうですね。m6uさん、英語圏でも同じ質問があり、2年ほど直っていないようです。papinianusさん、それはメール通知ですね。みなさん、ご意見ありがとうございます。l
CHERRY

2018/08/10 04:41

英語圏の質問のURL を 質問に「参考URL」して、記載していただけませんか?
退会済みユーザー

退会済みユーザー

2018/08/10 04:45

CHERRYさん、「同様の報告」として質問文に追記致しました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。