Come modificare la posizione predefinita delle meta box di WordPress?
Mi chiedo se esiste un modo per cambiare la posizione predefinita delle meta box di WordPress come "immagine in evidenza" per i custom post type senza doverle trascinare manualmente?
Esempio:

Puoi rimuovere i meta box predefiniti con remove_meta_box
e riaggiungerli in una posizione diversa 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', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
Questo lo rimuoverà dalla colonna laterale e lo aggiungerà alla colonna principale. Cambia post
in questo esempio con il nome del tuo custom post type.

@Milo: Siccome la funzione add_meta_box()
richiede un nome di funzione per il $callback
, come faccio a sapere il nome della funzione utilizzata da WordPress? Supponiamo che voglia fare la stessa cosa per il meta_box della sidebar 'Categorie' (#categorydiv)?

Anche io ho avuto difficoltà con questo. Non ho trovato un modo pulito per ridefinire il layout/ordine - specialmente perché può essere modificato dagli utenti quando trascinano le caselle.
Preferisco fare le cose 'con' WordPress (di solito ripaga), piuttosto che scontrarmi con esso, e il modo in cui WordPress gestisce questo è il seguente:
WordPress memorizza le posizioni trascinate per utente per schermata e ci sono un'intera serie di meta-chiavi utente che utilizza a seconda della pagina/schermata in cui ci si trova.
Quindi potresti aggiungere un'azione o un filtro per ogni nuovo utente per impostare le preferenze utente come vuoi che sia il default.
1) Trascina e organizza la pagina che vuoi modificare, poi
2) controlla in phpmyadmin i meta utente per il tuo ID e vedi cosa WordPress ha memorizzato lì.
3) poi codifica la nuova azione utente come segue:
se un utente NON ha già quella impostazione (per evitare di sovrascrivere una scelta personale), potresti impostarla come desideri - con il valore che hai trovato impostandola manualmente.
Per farti un'idea delle meta-chiavi utente che stai cercando, guarda questi screenshot: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(Alla fine ho scritto un plugin generico in modo che come amministratore potessi definire il layout preferito per tutti gli utenti per tutti i tipi di pagine/schermate. Potevano poi modificarlo ad esempio man mano che diventavano più esperti. Inoltre non si romperà quando WordPress cambia le cose perché il mio plugin recupera semplicemente i valori utente del template, non cerca nemmeno di impostare il valore su un valore hardcoded.)

Anche se mi piace l'idea alla base di questo approccio, la soluzione di Milo sembra molto più veloce quindi proverò quella, ma grazie per aver dedicato del tempo a informarmi anche su questo metodo. Sicuramente esplorerò questo approccio in un secondo momento. Ho votato positivamente il tuo commento.

Il plugin proposto da Anmari è un plugin commerciale a pagamento... e non sembra essere aggiornato dallo scorso agosto. State ancora mantenendo quel plugin? In caso contrario, avete considerato di condividerlo su Github?

Se vuoi ordinare con precisione le tue meta box, puoi usare questo plugin: https://wordpress.org/plugins/post-meta-box-order/
Agisce sull'opzione meta-box-order_post delle impostazioni utente (tabella wp_usermeta).
Nota 1: questa tecnica può essere applicata a qualsiasi CPT personalizzato modificando la fine del flag: meta-box-order_[IL_TUO_CPT]
Nota 2: non dimenticare di cambiare l'hash nel codice del plugin per applicare il tuo nuovo ordine a tutti gli utenti esistenti.
