カテゴリー別アーカイブ: WordPress

WordPress3.5 で bbPress を使うときのカラム落ち問題解決

当ウェブサイトのリニューアルということで WordPress を使ってみた。

基本設定をしたあとでまず作ったものが掲示板である。一応リニューアル前もあったものであるし、(最近はそうでもないだ)ウェブサイトには定番として置いてあるものなので作ったほうがいいと思い、用意してみた。

利用したのはWordPressのプラグインである bbPress という掲示板(フォーラム)システムだ。

その bbsPressインストールして見たものの、本体右に表示するはずのサイドバーが何故か下に出てしまった。要はカラム落ちしていたのだ。

そこで「WordPress3.5 + Twenty Twelve + bbPressでフォーラムのDemoサイトを作り直しました 」というページを参考にして、phpのソースを直してみたが、うまくいかない。それ以外のページでも同様のことを書いているページがあり、googleで調べてもそれ以外の解決方法は見当たらなかったのだが、やはりうまくいかない。

このページは Stinger3 というテーマを使っており、上記ページに書かれている Twenty Twelve というテーマとはHTMLソース内のIDやCLASSの名前が異なるので、そこの部分は書き換えてみたがそれでもカラム落ちは直らずじまいだ。

 

そこで、ソースを追って見たところ、カラム落ちの理由は別なところにあることが判明。

非常に単純な理由だ。

bbPressプラグインにある page-front-forums.php というファイルの <div id=”main”> が掲示板本体の後で閉じられてなかったのである。だから、サイドバー部分まで含めて本体の一部だとブラウザに思われてたわけだ。

以下のように、サイドバー表示部の直前(下から3行目の赤い部分)に閉じるタグを追加するようにソースをいじったら、とりあえずまともに表示されるようになった。

page-front-forums.php

 <?php

/**
* Template Name: bbPress – Forums (Index)
*
* @package bbPress
* @subpackage Theme
*/

get_header(); ?>

<?php do_action( ‘bbp_before_main_content’ ); ?>

<?php do_action( ‘bbp_template_notices’ ); ?>

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

<div id=”forum-front”>
<h1><?php the_title(); ?></h1>
<div>

<?php the_content(); ?>

<?php bbp_get_template_part( ‘content’, ‘archive-forum’ ); ?>

</div>
</div><!– #forum-front –>

<?php endwhile; ?>

<?php do_action( ‘bbp_after_main_content’ ); ?>

</div><!– /#main –>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

これでフォーラムのトップページは正常になったものの、記事のページなどはカラム落ちしたままである。
extras フォルダからコピーしてきた他のファイルもほとんどが同様の構成となっているので、それらの全てを同様に書き換えたらサイドバーの表示が正常になった。

全てのテーマにおいてこの方法で解決するとは保証できないが、同様の現象で悩まされている方はこの方法もお試しあれ。(あくまで自己責任でね。)

(追記)
Stinger3 でどうにか bbPress のカラム崩れをなくすることはできたが、トピックが全て繋がって表示されてしまう(さらに、タグを付けてもそのタグ以外のものも表示される)という致命的な不具合があったので、 Stinger3の使用はやめて bbPressと相性の良いらしい twenty twelve というテーマに変えました。