WordPress: Themeの修正WordPress: Theme modification

サイドバーを追加したらレイアウトが崩れてしまう場合

すでにサイドバーが存在するテーマに、新たにサイドバーを追加する場合、register_sidebar()を使っただけでレイアウトが崩れる場合があります。これは、サイドバー登録の順序が関係しているかもしれません。そういう場合には次のようにして、追加するサイドバーが一番最後に登録されるようにするとうまくいく場合があります。

add_action( 'wp_loaded', 'register_new_sidebar' );
function register_new_sidebar(){
	if ( function_exists( 'register_sidebar' ) ) {
		register_sidebar(array('name' => 'new sidebar'));
	}
}

functions.phpはinitフックより前で呼ばれるているらしいので、それより後のフックwp_loadedで呼び出せば、一番最後に登録されることになります。

iTheme2の要修正部分

  • header.php, footer.phpに、jquery1.5のスクリプト読み込みが直打ちされていたので削除
  • footer.phpの$.(‘#header-slider .slides’).css(‘height’,’auto’);の$表記をjQueryに変更
  • js/script.jsの$表記をjQueryに変更
  • child themeが使えるように、footer.phpのget_template_directory_uriをget_stylesheet_directory_uriに変更
  • header-buddypress.phpのmedia-queries.css読み込みを削除(重複している)
  • header-buddypress.phpのstylesheet(style.css)読み込みを削除(重複している)
  • footer-buddypress.phpのjquery.prettyPhoto.js読み込みを削除(重複している)
  • footer-buddypress.phpのjquery.jcarousel.js読み込みを削除(重複している)
  • footer-buddypress.phpのprettyPhoto.css読み込みを削除(重複している)

すべて子テーマで実現できます。子テーマでfunctions.phpを作れば、その内容はテーマのfunctions.phpに追加して実行されます。

BuddyPressと子テーマ(Child Theme)

BuddyPressをインストールした後に、子テーマ(Child Theme)を作った場合には、BuddyPressのファイル群も移動する必要があります。簡単な方法は、まず、親テーマにある以下のBuddyPress6フォルダを全て削除します。/activity, /blogs, /forums, /groups, /members /registration。それから子テーマを有効化し、BP Compatibilityから、Moveファイルで、新しく6つのフォルダ・ファイル群を子テーマ内に作成します。子テーマにheader.phpやfooter.phpが無い場合、親テーマフォルダ内のheader-buddypress.phpやfooter-buddypress.phpが読み込まれます(トップページ以外)。buddypressのレイアウトと合致するように、どちらかのファイルに設定します。といっても、親テーマフォルダ内のheader-buddypress.phpやfooter-buddypress.phpはトップページでは読み込まれませんので、子ページフォルダに、BuddyPress用のheader.phpやfooter.php、sidebar.phpを作成するのがよさそうです。分かりにくいので、子テーマにhead-buddypress.phpやfooter-buddypress.phpを作りたいという場合は、子テーマフォルダ内に作成したindex.phpやpage.phpで、get_header(‘buddypress’)やget_sidebar( ‘buddypress’ )、et_footer(‘buddypress’)とする必要があります。 参考ページ: http://codex.buddypress.org/theme-development/theme-dev-bp-template-pack-walkthrough-twenty-eleven-bp-1-5/2/ http://codex.buddypress.org/theme-development/wordpress-to-buddypress-theme/#tplfiles http://buddypress.org/community/groups/installing-buddypress/forum/topic/customising-alyeska-theme-for-buddypress/ http://buddypress.org/community/groups/how-to-and-troubleshooting/forum/topic/woo-canvas-child-theme-customization-and-ajax/