WordPressの投稿画面で、メタボックスの配置を変更する方法をご紹介いたします。
通常は、ドラッグ&ドロップで移動できますが、後述する方法で配置を変更すると位置が固定され、ドラッグ&ドロップで移動したとしても、次に投稿画面を開いた時にはまた元の位置に戻ります。
さらに、タイトルと本文の間など、通常はドラッグ&ドロップで移動できない箇所にも配置することが可能です。
WordPress投稿画面のメタボックスの配置を変更する方法
適用しているテーマのfunctions.phpに以下のようなコードを追加します。
function metabox_place_change_script( $hook ) {
if ( $hook == 'post.php' || $hook == 'post-new.php' ) {
$script = <<< SCRIPT
jQuery(function($) {
$('移動したいメタボックスのID').insertAfter('移動先メタボックスのID');
});
SCRIPT;
wp_add_inline_script( 'editor', $script );
}
}
add_action( 'admin_enqueue_scripts', 'metabox_place_change_script' );「移動したいメタボックスのID」で配置を変更するメタボックスを指定してください。「移動先メタボックスのID」で指定したメタボックスの下に配置されます。
各メタボックスのIDは以下の通りです。
| タイトル | #titlediv |
| 本文 | #postdivrich |
| カテゴリー | #categorydiv |
| タグ | #tagsdiv-post_tag or #post_tagdiv |
| 公開 | #submitdiv |
| アイキャッチ画像 | #postimagediv |
| フォーマット | #formatdiv |
| 抜粋 | #postexcerpt |
| トラックバック | #trackbacksdiv |
| ディスカッション | #commentstatusdiv |
| 作成者 | #authordiv |
例えば、「公開」を「タグ」の下に移動したい場合は、以下のように記述します。
function metabox_place_change_script( $hook ) {
if ( $hook == 'post.php' || $hook == 'post-new.php' ) {
$script = <<< SCRIPT
jQuery(function($) {
$('#submitdiv').insertAfter('#tagsdiv-post_tag');
});
SCRIPT;
wp_add_inline_script( 'editor', $script );
}
}
add_action( 'admin_enqueue_scripts', 'metabox_place_change_script' );もしうまく機能しない場合は、メタボックスのIDを調べてみてください。環境によってIDが違う可能性があります。実際に複数の環境で確認してみたところ、WordPressのバージョンは同じでも「タグ」のIDは”#tagsdiv-post_tag”と”#post_tagdiv”のパターンがありました。
あとがき
メタボックスの配置を固定したい時に使える方法です。ユーザーを後でいくつも追加する時なんかは役立つと思います。
ぜひ参考にしていただけると幸いです。

