サポート » 使い方全般 » データベースで、特定の値を持つ行から、別の値を取得する方法

  • 解決済 puniler

    (@puniler)


    プラグインをまたいだデータ取得で躓いております。
    どうぞ宜しくお願い致します。

    ―――
    質 問
    ―――
    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 );

    なので、今回の質問は後者の逆だと考えればいいのかな?と思います。

1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「データベースで、特定の値を持つ行から、別の値を取得する方法」には新たに返信することはできません。