WordPressの管理画面UIをカスタマイズする
WP Admin UI Customizeのバージョンアップを行いました。
最新バージョンは 1.3.2
やったこと
本当はWordPress3.6のローンチに合わせて、最終確認をしてからコミットしようかと思って5月20日まで待っていましたが、ローンチのスケジュールがまたずれそうな感がしたので、先にコミットしました。
なので、WordPressのバージョンは今のところ、3.6 beta 3 まで確認済みです。
さて、やったことですが、まずバグ修正から。
管理画面のサイドメニューのカスタマイズが出来るのですが、サブメニューがひとつも無い設定をすると、エラーの表示が出ていました。ので、このバグ修正です。
次に、いくつかプラグイン内で使用できる変数を増やしました。
今まで全く気づきませんでしたが、テーマを子で使用している場合、template_directory_uriでは使用中のテーマディレクトリが上手く取得出来ませんでした。
※具体的には、親テーマが Twenty Twelve、子のテーマがMy Themeという名前で、ディレクトリ名も同じような名前だと仮定します。
使用テーマがMy Themeです。 で、そのテーマ内のfunctions.phpや他のテンプレート内からtemplate_directory_uriでテーマフォルダのURLを取得しようとすると、
http://サイトurl/wp-content/themes/twentytwelve/
になるようです。でもあくまでも親テーマなんて触ることはほぼ無いので、子のテーマディレクトリを取得できるよう、stylesheet_directory_uri を追加しました。
また、マルチサイトの場合だと現在のブログ名ではなく、ネットワークサイト名も扱えるようにしました。
次に、ここが一番難関でした。
投稿編集画面、固定ページ編集画面、それぞれメタボックスがありますよね。
このメタボックスで、デフォルト以外のメタボックスがあります。これを非表示にする機能。
ググっていると、「あぁ、グローバル変数の$wp_meta_boxesから取得できるじゃない」
となるかもしれませんが、実はほとんど取得できません。
(プラグインによって、フックをかける場所・タイミングが違う為)
他に方法は無いだろうか。どこかにフックをかければ取得できるんじゃない?とだいぶ、試行錯誤してみましたが、さっぱり。。
結果、思いついた方法として、「投稿編集画面」を表示すると、現在設定されているメタボックス全てを一度データベースに保存。
その後にWP Admin UI Customizeのメタボックス削除メニューから、先ほど保存したメタボックス一覧を読み込んで、非表示にするか選択する形式です。
この、「一度投稿編集画面または、固定ページ編集画面にアクセスする必要がある」という点を、英語でまた説明するのも私には難しいところです。
なんだかんだで、こんな機能を更新しましたよ。良かった寄付してね使ってみてね。
ダウンロードはこちら
http://wordpress.org/plugins/wp-admin-ui-customize/
コメントを残す