データベースで、特定の値を持つ行から、別の値を取得する方法
-
プラグインをまたいだデータ取得で躓いております。
どうぞ宜しくお願い致します。―――
質 問
―――
mySQLを使って、テーブル「wp_bp_activity」の、カラム「id」を開きます。すると、各行に「id」と「item_id」という別々のプラグインによる値が入っているのですが、
この「id」から「ある値」を探し、同じ行の「item_id」を取得したいです。
「ある値」は後述する
$activity_id = bp_get_activity_id();
によって取得できるので、そこから「item_id」を取得したい。というわけです。―――
経 緯
―――
BBPressという掲示板プラグインでコメント入力欄にカスタムフィールド「bbp_myfield」を設置し問題なく機能しました。それをプラグインBuddyPressのアクティビティページ(twitterタイムラインのように「太郎さんがこんなコメントをしました」と流れるページのこと)にも表示させたいと考えています。
せっかく「こんなコメントをしました」と流すなら、カスタムフィールドの入力内容も一緒に出力してほしいからです。
そこで、BudduPressのアクティビティページのテンプレート(buddypress/bp-nouveau/buddypress/activity/entry.php/)で次の
nekochan()
でカスタムフィールドの値を出力させようと思い、<div class="activity-inner"> <?php bp_nouveau_activity_content() //デフォルトのコメント出力機能 ;?> <?php echo nekochan() //カスタムフィールドの出力機能 ;?> </div>
そのためにfunctions.phpで
nekochan()
を定義しました。function nekochan() { //➀BuddyPressのアクティビティIDを取得する。 $activity_id = bp_get_activity_id(); //➁アクティビティIDからBBPressのコメントIDを取得する。 $reply_id = ; //➂コメントIDの「bbp_myfield」を取得する。 $myfield = get_post_meta( bp_activity_get_activity_id( $reply_id ), 'bbp_myfield', true ); //➃出力する。 return '<p id="nekochan">'.$myfield.'</p>'; }
ご覧のように➁が今回ご質問させて頂いた部分です。
ここに何を書けばいいか、どなたかご教示いただけませんでしょうか。―――
補 足
―――
プラグインです。
・BBPress:https://ja.wordpress.org/plugins/bbpress/
・BuddyPress:https://ja.wordpress.org/plugins/buddypress/尚、今回
nekochan()
を出力する場所がBuddyPressのテンプレートなので、BuddyPressアクティビティIDを取得するためには➀のように
$activity_id = bp_get_activity_id();
だけでいけますが、それと逆に、BBPressのテンプレートに書いて、BBPressのコメントIDからBuddyPressのアクティビティIDを取得するコードだとこうなります。
$activity_id = get_post_meta( bbp_get_reply_id( $reply_id ), '_bbp_activity_id', true );
なので、今回の質問は後者の逆だと考えればいいのかな?と思います。
- トピック「データベースで、特定の値を持つ行から、別の値を取得する方法」には新たに返信することはできません。