seijun1986
フォーラムへの返信
-
フォーラム: プラグイン
返信が含まれるトピック: BuddyPressでBB_Queryを使うには?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が付いていると推測しますものの、それがどういうものなのか、よくわかりません。
ご教示いただければ幸いに存じます。
フォーラム: プラグイン
返信が含まれるトピック: ByddyPressがマルチサイトでうまく動作しませんseijunです。いや、ありがとうございました。ご指摘のように管理バーでした。
まず、マルチサイト化していてBuddyPressを含んでいるネットワークでは、すべてのブログサイトに管理バーは表示される仕様です。
上記の仕様は勉強不足で知っておりませんでした。
ということで、BuddyPressサイトを除く各サイトのfuuncion.phpに上記のようにしましたら、管理バーが表示されなくなりました。どうもありがとうございました。ということで、解決済みにしておきます。
フォーラム: プラグイン
返信が含まれるトピック: ByddyPressがマルチサイトでうまく動作しません本日、BuddyPressのサイトを含むすべてのサイトのヘッダ部分にメニューが表示されていることに気づきました。BuddyPressのサイト以外では消したいと思いまして、プラグインディレクトリの中にあるデフォールトテーマのheader.phpに次のようにしてみました。
<div id="header"> <?php global $blog_id; $subdirname = trim( get_blog_status( $blog_id, 'path' ), '/' ); if ($subdirname == 'sns') : ?> ... <?php endif; ?>
とやってみましたが、変化ありませんでした。
これはどう対処すれば良いのでしょうか。フォーラム: プラグイン
返信が含まれるトピック: ByddyPressがマルチサイトでうまく動作しませんseijunです。chestnut_jp様、どうもありがとうございました。
ご指摘のように、
define ( ‘BP_ROOT_BLOG’, 2); //ID=>2でした。
を加えると問題なくBuddyPress用の「サブサイト」でBuddyPressが動き出しました。レンタルサーバーが1個しかデータベースを作れないので、別のサーバーに飛ばすしかないかとぼやいていたのですが、たいへん助かりました。
小生のサイトにも引用箇所を明確にして掲載させていただきます。
※見出しは、「BuddyPress」の間違いでした。