it-swarm.com.de

Legen Sie die Standardoptionen für den Administratorbildschirm und die Metabox-Reihenfolge fest

Ich bin verzweifelt auf der Suche nach einer Möglichkeit, die Standardeinstellungen für "Bildschirmoptionen" und die Metabox-Reihenfolge in der Datei functions.php festzulegen. Hat jemand Hilfe, die er hier leisten kann?

28

Festlegen der Reihenfolge von Meta-Boxen auf Nachbearbeitungsseiten

Sie müssen die Meta-Boxen entfernen und sie in der gewünschten Reihenfolge erneut hinzufügen.

So deaktivieren Sie Meta-Boxen: (Passen Sie sie an Ihre Bedürfnisse an. Sehen Sie sich die Metabox-ID im HTML-Code an, um zu erfahren, welchen Namen Sie als ersten Parameter der Funktionen verwenden sollten.)

function my_remove_meta_boxes() {

    remove_meta_box('postcustom', 'post', 'core');

    remove_meta_box('commentsdiv', 'post', 'core');

    ...
}

add_action( 'admin_menu', 'my_remove_meta_boxes' );

Nach dem Entfernen können Sie sie mit der Funktion add_meta_box an neuen Positionen hinzufügen: http://codex.wordpress.org/Function_Reference/add_meta_box . Die Reihenfolge der Meta-Boxen hängt von der Reihenfolge ab, in der Sie die Funktion add_meta_box aufrufen. Beispiel: Mit dem folgenden Code-Snippet befindet sich das Kommentar-Meta-Feld vor dem Meta-Feld für benutzerdefinierte Felder.

function my_add_meta_boxes( $post_type, $post ) {
    if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
        add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core');

    if ( post_type_supports($post_type, 'custom-fields') )
        add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core');

    ...
}

add_action( 'add_meta_boxes', 'my_add_meta_boxes' );

Vielleicht möchten Sie sich die Datei wp-admin/edit-form-advanced.php ansehen

Festlegen, welcher Spaltentitel auf der Beitragslistenseite angezeigt wird

Sie müssen den Filter verwenden, um _ {$ post_type} _posts_columns zu verwalten. Beispiel: Das folgende Snippet entfernt die Kommentarspalte.

function my_remove_columns( $posts_columns ) {
    unset( $posts_columns['comments'] );

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

Festlegen der Standardergebnisse, die auf der Beitragslistenseite angezeigt werden

Verwenden Sie die Filter "_ {$ post_type} _per_page bearbeiten" und "edit_posts_per_page".

function my_edit_post_per_page( $per_page, $post_type ) {

    $edit_per_page = 'edit_' . $post_type . '_per_page';
    $per_page = (int) get_user_option( $edit_per_page );
    if ( empty( $per_page ) || $per_page < 1 )
        $per_page = 1;

    return $per_page;
}

add_filter( 'edit_posts_per_page', 'my_edit_post_per_page' );

So zielen Sie auf einen bestimmten Beitragstyp ab:

  • verwenden Sie add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );, z. add_filter( 'edit_post_per_page', 'my_edit_post_per_page' ); für Beiträge, add_filter( 'edit_page_per_page', 'my_edit_post_per_page' ); für Seiten.

  • oder verwenden Sie eine Bedingung innerhalb Ihrer Funktion. z.B.:

    funktion my_edit_post_per_page ($ per_page, $ post_type) {

    if( $post_type == 'post' ) {
        $edit_per_page = 'edit_' . $post_type . '_per_page';
        $per_page = (int) get_user_option( $edit_per_page );
        if ( empty( $per_page ) || $per_page < 1 )
            $per_page = 1;
    }
    
    
    return $per_page;
    
23
sorich87

Ersetzen Sie im folgenden Beispiel {CPT} durch den Namen des Beitragstyps, z. B. post, page, book, event, imaginary, foobar. Wenn Sie also einen Beitragstyp mit dem Namen event haben, müssen Sie einen Filter für get_user_option_meta-box-order_event hinzufügen.

add_filter( 'get_user_option_meta-box-order_{CPT}', 'metabox_order' );
function metabox_order( $order ) {
    return array(
        'normal' => join( 
            ",", 
            array(       // vvv  Arrange here as you desire
                'customdiv-{CPT}',
                'authordiv',
                'slugdiv',
            )
        ),
    );
}

Anmerkungen:

  • Neben normal können Sie auch side und advanced haben.
  • Die Werte sind durch Kommas getrennte Div-IDs. Sie können den Quellcode der Seite anzeigen oder erraten
  • Etwaige vorhandene Metaboxen, die nicht in Ihrer benutzerdefinierten Bestellung enthalten sind, werden automatisch am Ende Ihrer Liste hinzugefügt.
9
Nabil Kadimi