WordPress のすべてのバックエンドユーザーのために、メタボックスの位置と画面の列レイアウトを直感的に調整します。
■ 概要
・プラグインをインストールして有効化
・投稿、ページ、カスタム投稿タイプ、ダッシュボードに切り替える
・メタボックス(またはすべて)の順序と位置を変更する
・列レイアウトを変更する
・別のユーザーに切り替え(User Switching プラグインを使用することもできます)
・変更内容を確認する
■ インストール
ダウンロードして解凍し、「global-meta-box-order」フォルダを「plugins」フォルダに移動してください。
WordPressインストールフォルダに移動し、管理画面でプラグインを有効化してください。
■ ロールバック
このプラグインはデータベースに何も書き込まず、読み込みのみを行います。
そのため、ユーザー設定は一切変更されず、リクエストごとにフィルタリングされます。
適用された変更はユーザーから見ると永続的に適用されているように見えますが、実際にはそうではありません。
プラグインを無効化すると、すべての変更が消えます。
再度有効化すると、すべての変更が再適用されます。
■ 仕組み
このプラグインはブループリントユーザーを操作対象としており、そのブループリントユーザーのメタボックス(表示、位置、順序)と列レイアウトの画面設定は、他のすべてのバックエンドユーザーに即座に複製されます。
デフォルトでは、このブループリントユーザーが最初に検出された管理者ユーザーであるため、画面設定をグローバルに変更するには、このユーザーでログインする必要があります。
デフォルトのブループリントユーザーやその他の設定を変更する方法については、以下の「設定」セクションを参照してください。
■ 動作場所
デフォルトでは、ユーザーが以下の操作を行ったときにプラグインが起動します。
・投稿を編集する
・ページを編集する
・カスタム投稿タイプを編集する
・ダッシュボードにアクセスする
■ 変更内容
常に変更されます
・メタボックスの表示、順序、列の位置
・列のレイアウト
指示された場合、画面オプションボックスも削除されます。
・画面オプションボックスを削除する
・すべてのボックスを固定し、ユーザーが移動できないようにします。
■ 使用方法
ブループリントユーザーとしてログインしてください。デフォルトでは、ブループリントユーザーはシステムで最初に表示される管理者ユーザーです。
編集画面(投稿、ページ、カスタム投稿タイプ)またはダッシュボードを選択し、メタボックスを移動したり、画面設定や画面の列レイアウトを変更したりできます。
設定を確認するには別のユーザーに切り替え、調整するには元のユーザーに切り替えてください。
完了したら、画面オプションボックスを削除し、ボックスの並べ替え順序をロックして、ビューをロックすることをお勧めします。
もちろん、ブループリントユーザーには影響しません。
■ 設定
バックエンドの統合は最小限に抑えられています。ナビゲーションエントリ、オプションページ、データベースへのエントリはありません。
プラグインの設定は、テーマの functions.php で行います。
ちなみに、プラグインの設定は不要です。管理者ユーザーがいれば、問題なく動作します。
■ 準備
エディターを起動し、functions.php を読み込み、以下のコードをコピー&ペーストしてください。
設定を行うためのコンテナのようなものを用意するのが目的ですが、方法は自由です。
簡潔にするため、プラグインが読み込まれてアクティブになっていることを前提とするため、確認は行いません
(ただし、QueryLoop の便利な記事で、その方法についていくつか解説しています)。
if (is_admin()) {
// The path to the configuation is rather long, so let's
// make us a shorthand.
class_alias('\GlobalMetaBoxOrder\Config', 'MetaBoxConfig');
// Add MetaBoxConfig below this line
...
}
これで、プラグインのデフォルトの動作を調整するために、以下の設定を追加する準備が整いました。
このドキュメントの最後近くにある設定例もご覧ください。
設定が適用されたことを確認するには、ブループリントユーザー以外のユーザーでログインしている必要があることにご注意ください。
ここでも、User Switchingプラグインが役立つ場合があります。
■ 操作対象画面
デフォルトでは、プラグインは投稿、ページ、カスタム投稿タイプの編集画面、およびダッシュボードで動作します。
以下の手順で変更できます。
// Operate on post and page screens only, leave the dashboard alone.
// This will still include custom post types.
MetaBoxConfig::$filter = array('post', 'page');
// Exclude custom post types
MetaBoxConfig::$include_cpts = false;
// Allow custom post types...
MetaBoxConfig::$include_cpts = true;
// ...but not all of them
MetaBoxConfig::$exclude = array('acme_product');
上記の例のMetaBoxConfigは、上記の準備セクションで示したように、\GlobalMetaBoxOrder\Configへのエイリアスであると想定されています。
■ ブループリントユーザーの変更
以下のように、ユーザーIDを返す関数を登録します。
MetaBoxConfig::$getBlueprintUserId = function () { return 1; };
■ あるいは、もっと複雑な場合:
MetaBoxConfig::$getBlueprintUserId = function () {
$user = get_user_by('slug', 'jane');
return $user ? $user->ID : false;
};
上記の例のMetaBoxConfigは、上記の準備セクションで示したように、\GlobalMetaBoxOrder\Configのエイリアスであると想定されています。
■ ビューのロック
デフォルトでは、すべてのユーザーが画面オプションボックスを操作し、メタボックス自体を移動できます。
これには理由がありますが、簡単に説明すると、次のように変更すると良いでしょう。
// No screen options
MetaBoxConfig::$remove_screen_options = true;
// Meta boxes can't be moved anymore
MetaBoxConfig::$lock_meta_box_order = true;
上記の例のMetaBoxConfigは、上記の準備セクションで示したように、\GlobalMetaBoxOrder\Configへのエイリアスであると想定されています。
■ 設定例
if (is_admin()) {
// Make sure plugin is active
if (class_exists('\GlobalMetaBoxOrder\Config')) {
// Make a long name short.
class_alias('\GlobalMetaBoxOrder\Config', 'MetaBoxConfig');
// Settings
MetaBoxConfig::$filter = array('post', 'page', 'dashboard'); // default
MetaBoxConfig::$include_cpts = true; // default
MetaBoxConfig::$getBlueprintUserId = function () { return 1; };
MetaBoxConfig::$exclude = array('acme_product');
MetaBoxConfig::$remove_screen_options = true;
MetaBoxConfig::$lock_meta_box_order = true;
}
}
■ WYSIWYGエディターの移動について
WordPressのWYSIWYGエディターの位置は固定されており、デフォルトでは変更できません(主に、エディターの周りにボックスがないためです)。
これにはいくつかの理由がありますが、どうしても位置を変更できるエディターが必要な場合は、当社のMovable Editorプラグインをご検討ください。
一方、エディターの上に特定のボックスを配置したい場合は、StackExchangeのこちらの回答をご覧ください。