サポート » プラグイン » BuddyPressでBB_Queryを使うには?

  • seijunです。
    BuddyPressでクラスBB_Queryを使いたいのですが、index.phpをコピーしてhome.phpにし、冒頭に次のくだりを入れても「BB_Queryはないよ」と言われます。どうしたものでしょうか。

    <?php
    if(class_exists( 'BB_Query' )):
     $post_query = new BB_Query( 'post', array('per_page' => 10 ),'get_latest_forum_posts' );
     if ($post_query->have_posts()):
       ?>
       <ul>
       <?php while ($post_query->have_posts()) : $post_query->the_post(); ?>
           <li><a href="<?php the_permalink() ; ?>"><?php the_title(); ?></a></li>
            <?php endwhile; ?>
        </ul>
        <?php endif; ?>
    <?php else: ?>
        <?php echo "Class BB_Queryがありません。"; ?>
    <?php endif; ?>

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 seijun1986

    (@seijun1986)

    seijunです。自己レスで恐縮ですが、補足させて頂きます。

    行いたいことは、①親サイトは普通のある団体のサイト②子サイトはSNSサイトで、親サイトの右サイドブロックに、子サイトの最新フォーラムトピックスを表示することです。

    ネットワーク関数のswitch_to_blog()関数を使えば、子サイトの最新フォーラムトピックを表示する方法がわかればうまく行くのではないかと思い、最初はBB_Queryクラスを使おうとしましたが、何か特殊なことをしない限り、クラスがないと言われます。includeしてみましたが、そのたびごとに他のPHPの関数がないと怒られ、収拾がつきません。

    そこで、本家のサイトを物色して、BP_Forums_Template_Forumなるクラスがあるのを見出し、これをhome.phpに突っ込んだところ、そのクラスはありますということなので、他に必要と思われる関数をincludeして、試しに次のようなスクリプトをかいてみました。

    <div>
    <p style="color:blue; border-style:solid; border-width:1px; background-color:linen">
    <h2>Forumの投稿記事</h2>
    </p>
    <?php if(class_exists( 'BP_Forums_Template_Forum' )): ?>
      <?php echo "Class BP_Forums_Template_Forumがあります。<br>"; ?>
      <?php
      $forum_id = 2; $user_id = ''; $no_stickies = '';
      $post_query = new BP_Forums_Template_Forum( $type = 'newest', $forum_id, $user_id, $page = 1, $per_page = 10, $max = 10, $no_stickies, $search_terms = '' );
      if ($post_query->has_topics()): ?>
      <ul>
        <?php while ($post_query->has_topics()) : $post_query->the_topic(); ?>
        <li><a href="<?php bp_the_topic_permalink() ; ?>"><?php bp_the_topic_title(); ?>     </a></li>
       <?php endwhile; ?>
       </ul>
       <?php else: ?>
          <?php echo "Topicがありません。<br>"; ?>
       <?php endif; ?>
    <?php else: ?>
        <?php echo "Class BP_Forums_Template_Forumがありません。<br>"; ?>
    <?php endif; ?>
    </div>

    このスクリプト、一応、動いているのですが、結果はTopicがありません、となります。
    子サイトにはグループを2つ作り、それぞれにforumを1つずつ作成し、それぞれのforumに投稿しているので、topicがないということはないんじゃないか、と思います。

    引数で$forum_idというのがありますが、これを0にすると、無限ループになって、Chromeが警告を発します。1ないし2にすると、トピックはありません、となります。ということで、$forum_idの指定の仕方が間違っているのかとも思いますが、BuddyPressの場合の各フォーラムにはidが付いていると推測しますものの、それがどういうものなのか、よくわかりません。

    ご教示いただければ幸いに存じます。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「BuddyPressでBB_Queryを使うには?」には新たに返信することはできません。