it-swarm.com.de

Hinzufügen einer benutzerdefinierten Spalte zur benutzerdefinierten Beitragstypübersicht im Backend

Ich habe einen benutzerdefinierten Beitragstyp namens events . Im Backend/Administration kann ich alle diese benutzerdefinierten Beitragstypen auflisten, dh events :

 enter image description here 

Wie Sie sehen, enthält diese Übersicht drei Spalten: Titel , Tags und Datum . Jedes dieser Ereignisse hat ein benutzerdefiniertes Feld mit dem Namen Ereignisdatum .

Meine Frage ist nun, wie kann ich eine sortierbare eventDate -Spalte zur events -Übersicht hinzufügen (siehe Abbildung oben)?

1
beta

Okay, ich habe selbst eine Antwort gefunden. Um Menschen zu helfen, die dies in Zukunft lesen werden, habe ich Folgendes getan:

1) Dies erklärt, wie eine Spalte hinzugefügt wird: http://www.deluxeblogtips.com/add-custom-column/

2) Dies erklärt, wie eine sortierbare Spalte hinzugefügt wird: https://wordpress.org/support/topic/admin-column-sorting/

3
beta

Die Hooks zum Erstellen von benutzerdefinierten Spalten und den zugehörigen Daten für einen benutzerdefinierten Beitragstyp lauten "_ {$ post_type} _posts_columns" und "_ {$ post_type} _posts_custom_column", wobei "{$ post_type}" der Name des benutzerdefinierten Beitragstyps ist.

In diesem Beispiel aus der Dokumentation wird die Autorenspalte entfernt und eine Taxonomie- und eine Metadatenspalte hinzugefügt:

// Add the custom columns to the book post type:
    add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' );
    function set_custom_edit_book_columns($columns) {
        unset( $columns['author'] );
        $columns['book_author'] = __( 'Author', 'your_text_domain' );
        $columns['publisher'] = __( 'Publisher', 'your_text_domain' );

        return $columns;
    }

    // Add the data to the custom columns for the book post type:
    add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 );
    function custom_book_column( $column, $post_id ) {
        switch ( $column ) {

            case 'book_author' :
                $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' );
                if ( is_string( $terms ) )
                    echo $terms;
                else
                    _e( 'Unable to get author(s)', 'your_text_domain' );
                break;

            case 'publisher' :
                echo get_post_meta( $post_id , 'publisher' , true ); 
                break;

        }
    }

Kopiert von bestehenden Ans.

4
Pravin Work

Hier ist der gesamte Code dafür:

add_filter('manage_edit-video_columns', 'my_columns');
function my_columns($columns) {
    $columns['eventDate'] = 'Event Date';
    return $columns;
}

add_action('manage_posts_custom_column',  'my_show_columns');
function my_show_columns($name) {
    global $post;
    switch ($name) {
        case 'eventDate':
            $eventDate = get_post_meta($post->ID, 'eventDate', true);
            echo $eventDate;
    }
}

add_filter( 'manage_edit-video_sortable_columns', 'my_sortable_date_column' );
function my_sortable_date_column( $columns ) {
    $columns['eventDate'] = 'Event Date';

    return $columns;
}

Vielen Dank

3
Sid