Wie erzwinge ich ein Spaltenlayout auf der Bearbeitungsseite eines benutzerdefinierten Post-Typs?

Ich habe ein Plugin mit benutzerdefinierten Post-Typen erstellt, und ich muss die Standard zwei Spalten Post-Seite auf eine einzige Spalte zwingen. Zur gleichen Zeit muss die Publish- Metabox nach unten verschoben werden. Ich muss das über die functionen einigermaßen tun.

Ich habe einige Lösungen von WPSE, aber die einzige Lösung, die ich gefunden habe, verbirgt die Metabase “Publish”. Ich kann nicht herausfinden, warum.

Irgendwelche Ideen wie man das macht?

Solutions Collecting From Web of "Wie erzwinge ich ein Spaltenlayout auf der Bearbeitungsseite eines benutzerdefinierten Post-Typs?"

Es gibt einen Filter namens get_user_option_meta-box-order_{$page} wobei $page der Name des Post-Typs ist. submitdiv nur sicher, dass submitdiv der letzte Wert im Array ist:

 add_filter( 'get_user_option_meta-box-order_post', 'wpse25793_one_column_for_all' ); function wpse25793_one_column_for_all( $order ) { return array( 'normal' => join( ",", array( 'postexcerpt', 'formatdiv', 'trackbacksdiv', 'tagsdiv-post_tag', 'categorydiv', 'postimagediv', 'postcustom', 'commentstatusdiv', 'slugdiv', 'authordiv', 'submitdiv', ) ), 'side' => '', 'advanced' => '', ); } 

Ein Ansatz besteht darin , die ursprüngliche Metabox zu entfernen und diese Metabox dann mit aktualisierten Parametern erneut hinzuzufügen . Beispielsweise wird dadurch das Meta-Feld “Featured Image” von der Seitenspalte in die Hauptspalte für einen benutzerdefinierten Post-Typ mit einem Slug cpt-slug :

Bearbeiten

Der Parameter für das Meta-Feld “Veröffentlichen” lautet submitdiv und der korrekte callback lautet post_submit_meta_box() ; Ich habe den folgenden Code aktualisiert, um diese korrekten Parameter wiederzugeben. Ich habe auch den add_meta_box() $context von 'high' auf 'low' geändert, so dass das Meta-Feld “Veröffentlichen” unten hinzugefügt wird:

 < ?php function wpse25793_move_post_metaboxes( $post ) { global $wp_meta_boxes; remove_meta_box( 'submitdiv', 'cpt-slug', 'side' ); add_meta_box( 'submitdiv', __( 'Publish' ), 'post_submit_meta_box', 'cpt-slug', 'normal', 'low' ); } add_action( 'add_meta_boxes_cpt-slug', 'wpse25793_move_post_metaboxes' ); ?> 

Der Ansatz sollte für das Meta-Feld “Veröffentlichen” gleich sein. Sie müssen nur die Veröffentlichungs-Meta-Box statt der vorgestellten Bild-Meta-Box entfernen / hinzufügen.