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”のパターンがありました。
あとがき
メタボックスの配置を固定したい時に使える方法です。ユーザーを後でいくつも追加する時なんかは役立つと思います。
ぜひ参考にしていただけると幸いです。