¿Cómo cambiar la posición predeterminada de las cajas meta de WordPress?
Me pregunto si hay alguna manera de cambiar la posición predeterminada de las cajas meta de WordPress, como "imagen destacada" para tipos de contenido personalizados sin tener que arrastrarlas manualmente.
Ejemplo:

Puedes eliminar las meta cajas predeterminadas con remove_meta_box y volver a agregarlas en una posición diferente con add_meta_box:
add_action('do_meta_boxes', 'wpse33063_move_meta_box');
function wpse33063_move_meta_box(){
remove_meta_box( 'postimagediv', 'post', 'side' );
add_meta_box('postimagediv', __('Imagen destacada'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
Esto eliminará la meta caja de la columna lateral y la agregará a la columna principal. Cambia post
en este ejemplo por el nombre de tu tipo de contenido personalizado.

@Milo: Si el add_meta_box()
necesita un nombre de función $callback
, ¿cómo puedo saber el nombre de la función que usa WordPress? Supongamos que quiero hacer lo mismo con el meta_box de la barra lateral 'Categorías' (#categorydiv)?

Yo también tuve problemas con esto. No encontré una forma limpia de redefinir el diseño/orden, especialmente porque los usuarios pueden cambiarlo cuando arrastran las cajas.
Prefiero hacer las cosas 'con' WordPress (generalmente vale la pena), en lugar de luchar contra él. La forma en que WordPress maneja esto es la siguiente:
WordPress almacena las posiciones arrastradas por usuario y por pantalla, usando varias claves de metadatos de usuario que varían según la página/pantalla.
Podrías agregar un action o filter para cada nuevo usuario y establecer la configuración como quieres que sea por defecto:
1) Primero arrastra y organiza la página como quieres que quede
2) Luego revisa en phpMyAdmin los metadatos de tu usuario (user-meta) para ver qué ha almacenado WordPress
3) Finalmente programa la acción para nuevos usuarios así:
Si un usuario NO tiene esa configuración establecida (para no sobreescribir elecciones personales), puedes establecerla como deseas - usando el valor que obtuviste al configurarlo manualmente.
Para entender qué claves de metadatos (metakeys) buscar, mira estas capturas de pantalla: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(Al final desarrollé un plugin genérico que me permite como admin definir mi diseño preferido para todos los usuarios en todo tipo de páginas/pantallas. Luego ellos pueden modificarlo, por ejemplo a medida que ganan experiencia. Además no se rompe cuando WordPress hace cambios, ya que mi plugin solo obtiene los valores de plantilla del usuario, ni siquiera intenta establecer el valor de forma hardcodeada.)

Aunque me gusta la idea detrás de este enfoque, la solución de Milo parece mucho más rápida, así que voy a probar esa primero. Pero gracias por tomarte el tiempo de informarme sobre este método también. Definitivamente consideraré usar esta forma en el futuro. He votado tu comentario.

El plugin propuesto por Anmari es un plugin comercial de pago... y no parece haber sido actualizado desde agosto del año pasado. ¿Sigues manteniendo ese plugin? Si no es así, ¿has considerado compartirlo en Github?

Si deseas ordenar tus meta boxes de manera precisa, puedes usar este plugin: https://wordpress.org/plugins/post-meta-box-order/
Funciona sobre la opción meta-box-order_post del usuario (tabla wp_usermeta).
Nota 1: esta técnica se puede aplicar a cualquier CPT personalizado cambiando el final del flag: meta-box-order_[TU_CPT]
Nota 2: no olvides cambiar el hash en el código del plugin para aplicar tu nuevo orden a todos los usuarios existentes.
