タグ: meta_box

  • wordpress plugin WP Admin UI Customize version up 1.3.2

    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/