BuddyPressでフォロー中のユーザーのIDと記事一覧を取得する

harada 805views 更新:2014年7月4日

フォロー中のユーザーのIDを取得する

<?php echo bp_get_following_ids(); ?>

現在ログイン中のユーザーがフォロー中のユーザーの記事一覧を取得する

<?php global $userdata;
$user_id = $userdata->ID;
$follow_user = bp_get_following_ids( "user_id=$user_id" );
    $args = array(
                'posts_per_page' => $wp_query->max_num_pages,
                'paged' => $paged,
                'author' => $follow_user
            );
    query_posts($args); ?>

コメント

  1. wakata のコメント (2015年6月27日)

    このタグを固定ページで使用したいのですが、以下の記述では動作しませんでした。

    ——————————
    < ?php global $userdata; $user_id = $userdata->ID;
    $follow_user = bp_get_following_ids( “user_id=$user_id” );
    $args = array(
    ‘posts_per_page’ => $wp_query->max_num_pages,
    ‘paged’ => $paged,
    ‘author’ => $follow_user
    );
    query_posts($args); ?>
    //ループ開始
    < ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    “>< ?php the_title(); ?> < ?php echo get_the_date(); ?>< ?php the_time(); ?>

    < ?php endwhile; endif; ?>
    //ループ終了
    < ?php wp_reset_query(); ?>
    ——————————

    正しい記述方法を教えていただけませんか?

    よろしくお願いします。

    • harada のコメント (2015年6月30日)

      コメントありがとうございます。
      なるほどー順番に確認していただければと思います。
      (1)$follow_userは取得できていますか?
      (2)こちらの記述はフォロー中のユーザーが一人の場合なのですが、フォロー中のユーザーは複数人でしょうか?

      • wakata のコメント (2015年7月1日)

        返信ありがとうございます!!

        問1の$follow_userはおそらく取得できていないと思われます。
        というのも、こちらが試した上記記述では3行目の$follow_userの列でエラーが発生し、物は試しで3列目を全削除するとエラー自体は出なくなりました。

        問2のフォロー中のユーザーは2人です。

        固定ページでこちらのタグが使用できると出来ないとではかなりの差がありますので、動作するまでこちらも試験は繰り返し行う所存です!!

        よろしくお願いしますm(_ _)m

    • harada のコメント (2015年7月2日)

      そうするとログイン中のユーザーID($user_id = $userdata->ID;)が取得できていないのかもしれませんね。。
      echo $user_id;と入力してユーザーIDはかえってきますでしょうか?

      また、こちらのトピックも参考になるかもしれません!
      https://wordpress.org/support/topic/sorting-post-index-by-users-youre-following-using-wp_query

  2. wakata のコメント (2015年7月3日)

    ご指摘いただいた内容を固定ページに記述してみましたが、何も表示されませんでした。

    < ?php echo $user_ID?>

    参考URLも拝見しましたが、プログラミング知識が乏しい(というよりほぼ無い)ため、上手く飲み込めずにいます…。

    対策を教えていただけると助かります。

    よろしくお願いします。

  3. harada のコメント (2015年7月7日)

    ログイン中のユーザー取得する部分を一般的なものに変更してみたためこちらでまたお試しいただけますか?

    $user = wp_get_current_user();
    $user_id = $user->get(‘id’); // ログイン中のユーザーIDを取得

    $follow_user = bp_get_following_ids( “user_id=$user_id” );
        $args = array(
                    ‘posts_per_page’ => $wp_query->max_num_pages,
                    ‘paged’ => $paged,
                    ‘author’ => $follow_user
                );
        query_posts($args);
    //ループ開始

    こちらでもうまくいかない場合は、
    echo $user_id; //ログイン中のユーザーIDが取得できているかどうか
    echo $follow_user; //ログイン中のユーザーがフォローしているユーザーのIDが取得できているかどうか
    を試してみて、その変数が取得できているかを試してみてください!

    うまくいくといいのですが・・・(; ・`ω・´)

  4. harada のコメント (2015年7月7日)

    コメントだと記号部分が変わってしまっているので、「‘」「’」や「“」「”」は適宜修正していただくようお願い致します!

  5. wakata のコメント (2015年7月20日)

    経過報告が遅れてしまい申し訳ございません。

    こちらの経過をお知らせします。

    まず、ご指示いただいたコードを記載すると

    $follow_user = bp_get_following_ids( “user_id=$user_id” );

    の行でエラーが発生し、出力不能に陥ってしまします。

    そこでもしかしたら「$follow_user」を動作させる為のプラグインがあるのではと思い、検索したところ「BuddyPress Follow」というプラグインが「$follow_user」を使用していたのでインストールしてみるとエラー自体は解消され出力がされました。(haradaさんもご使用中?)

    ですが出力内容は友好関係のない相手にも表示されてしまい、こちらの望む表示ではありませんでした。

    次に固定ページに以下のコードを記載してみましたが、どちらも出力されませんでした。

    ユーザーID:< ?php echo $user_ID?>-
    フォローユーザー:< ?php echo $follow_user?>-

    ですが固定ページのPHPファイル(page.php)に直接記載してみたところ、

    ユーザーID:1-
    フォローユーザー:-

    と表示され、ユーザーIDの取得には成功し、フォローユーザーのID取得には失敗している様子です。

    フォローユーザーのIDを取得するには、どうしたらいいのでしょうか?

    そして友好関係にある相手の記事だけを表示させるにはどうしたらいいでしょうか?

    ご面倒をおかけいたしますが、ご指導よろしくお願いします。

    以下page.phpへの記載コード

    page.phpに記載中

    < ?php global $userdata; $user_id = $userdata->ID;
    $follow_user = bp_get_following_ids( ‘user_id=$user_id’ );
    $args = array(
    ‘posts_per_page’ => $wp_query->max_num_pages,
    ‘paged’ => $paged,
    ‘author’ => $follow_user
    );
    query_posts($args); ?>
    //ループ開始
    < ?php if (have_posts()) : ?>

    < ?php while (have_posts()) : the_post(); ?>

    < ?php the_author(); ?>さんが投稿しました。
    “>< ?php the_title(); ?>』< ?php echo get_the_date(); ?>< ?php the_time(); ?>に投稿されました。

    < ?php $files = get_post_meta($post->ID, ‘_thumbnail_id’, true);
    $file = wp_get_attachment_url($files);
    ?>
    “>

    < ?php the_excerpt(); ?>

    < ?php endwhile; endif; ?>
    //ループ終了
    < ?php wp_reset_query(); ?>

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません