このエントリーをはてなブックマークに追加 Twitterでツイート WordPress 3.1日本語版リリース

夕方にWordPress 3.1日本語版がリリースされたので、さっそく関連サイトをアップデート。今回はメジャーバージョンアップということもあり、変更ファイルがたくさんあったため、差分ではなく丸ごとコピーして行いました。

アップデート自体作業自体はさっくり終了したのですが、開発環境を含めいくつかのサイトにおいてページ上部に空きが生じてしまいました(まったく問題ないサイトもあります)。そうなった理由は、headタグ内に次のようなcssが書き込まれているためでした。

<style type="text/css">
html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }
</style>

これを出力しているのは、WordPress 3.1で追加されたコードらしく、wp_headのアクションで’_admin_bar_bump_cb’が追加され、その中で上記のcssが出力されていました。
とりあえずの対応として、wp_headアクションの実行前にこのアクションをクリア。

if ( has_action( 'wp_head', '_admin_bar_bump_cb' ) )
remove_action('wp_head', '_admin_bar_bump_cb' );

これで、cssは出力されなくなり、変な空きもなくなりました。

一応、フォーラムでこれだと思われる質問があったのでコメントしてみましたが、抜本的な原因を調べないといけないですね。

追記:(2011/03/02朝)
こちらですが、3.1の新機能の1つに「管理者バー」の表示が影響したようです。
「管理者バー」は、ログイン状態でサイトにアクセスすると、ページの最上部に管理者向けのメニューを表示するもので、実装として上記にあるようにwp_headアクションでcss部分を、wp_footアクションでメニューを構成する(javascriptを含む)html部分を出力するようになっているようです。最上部に空きができるのは、使用しているテーマにおいてwp_footを使用していないために、html部分が出力されないことが原因でした。この問題はログインしていない場合は影響しないので、通常の閲覧者は空きがある状態では見えることはありません(ちょっと安心)。
抜本的な解決策は、テーマでwp_footを使用するだけですね。
ありがとうございました。> kvexさん

追記2:(2011/03/02夜)
管理ページ「ユーザー」「あなたのプロフィール」で「管理バーの表示」のチェックをはずせばいいいらしい。
ありがとうございました。> コメントしていただいた「クリプトネット浜松」

投稿日:2011年2月28日

コメント / トラックバック2 件

  1. […] 付いてきて余分なスペースが出てしまう。 っていう状況が発生。 うちでは、FireFoxで発生、フォーラムの中の人によるとChromeだけって言ってる人もいるしFirefoxでも他のサイトでは大丈夫なところもあるし(自制作)じつのところよくわからん。 で、CSSを書き直してみたり、テーマを作り直したりしたが、改善ぜずぐーぐる先生で調べると、 「WordPress 3.1で追加されたコードらしく、wp_headのアクションで’_admin_bar_bump_cb’が追加され、その中で上記のcssが出力されていました」 というのをこちらさまのサイト→http://12net.jp/blog/b20110228_01.htmlで発見。 そのサイトに記述されている解決法 if ( has_action( 'wp_head', '_admin_bar_bump_cb' ) ) remove_action('wp_head', '_admin_bar_bump_cb' ); をheaderに記述してとりあえず回避。 でも、腑に落ちない感があったので、再度、本家のフォーラム調べてみると、単に新らしいテーマに含まれる管理バーつーのが有効になってるみたいでその分のスペースが28px分空くみたいだ。 と言うわけで、その昨日をOFFしてやれば言いと言うことで、『ユーザープロフィールから「管理バーの表示」で「サイトを表示する際」のチェックを外す』って事でいいだけだった。 Comments (0) […]

  2. […] こちらにまとめが… > 12ne.jp […]

  • ※コメントは、スパム対策などのためIPアドレスにて制限しております。
  • ※誹謗や中傷、スパムなど、不適切な内容は公開いたしません。ご了承ください。