Dodawanie niestandardowych kolumn do niestandardowych typów postów

27

Zrobiłem to wcześniej, ale zapomniałem nazwy haka i nigdzie nie mogę go znaleźć ...

To, co próbuję zrobić, to dodać niestandardowe kolumny na liście niestandardowego typu posta w adminie.

Na przykład w administratorze kliknij artykuły , chcę tam dodać niestandardową kolumnę.

Chin Leung
źródło
zadałem (i odpowiedziałem) to samo pytanie (w tym, jak uczynić je sortowalnymi): wordpress.stackexchange.com/questions/253680/…
beta

Odpowiedzi:

57

Haki do tworzenia niestandardowych kolumn i związane z nimi dane dla niestandardowego typu postu są manage_{$post_type}_posts_columnsi manage_{$post_type}_posts_custom_columnodpowiednio, gdzie {$post_type}jest nazwą niestandardowego typu post.

Ten przykład z dokumentacji usuwa kolumnę autora i dodaje kolumnę systematyki i metadanych:

// 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;

    }
}
Dave Romsey
źródło
1
Dziękuję za ten hak !!! To jest genialne!! Nie ma przejrzystej dokumentacji dotyczącej przepływu stosu !!! : D Cheers mate
Rodrigo Zuluaga
czy nie ma opcji ustawienia numeru kolumny? jak column_index[2]. Ponieważ kolumna custom_column pojawia się na końcu kolumny.
Dilip Gupta
@DilipGupta $ kolumny to tablica, którą można zmienić kolejność, zanim ją
zwrócisz
0

Nie jestem pewien, czy są to domyślne niestandardowe metadane, które chcesz wyświetlać jako kolumny, ale możesz rozważyć skorzystanie z tej bezpłatnej wtyczki, która umożliwia dodawanie kolumn w celu wyświetlenia niestandardowych pól. https://wordpress.org/plugins/codepress-admin-columns/

Wersja pro pozwala nawet dodawać filtrowanie, sortowanie i edycję bezpośrednią do tych kolumn.

DGStefan
źródło
NIE UŻYWAJ! Zniszczy twoją witrynę: PHP Błąd krytyczny: Nie można ponownie napisać AC () (poprzednio zadeklarowany w [redacted] \\ wp-content \\ themes \ [redacted] \\ functions.php: 628) w [redacted] \\ wp-content \\ wtyczki \\ codepress-admin-columns \\ api.php w linii 9
Peter Kionga-Kamau
@ PeterKionga-Kamau jest to problem ze zgodnością z określonym motywem. Zgłoszony błąd nie pojawi się z domyślnym motywem WP (takim jak twentytwenty); Używam również wtyczki z motywem Divi i uważam ją za bardzo przydatną
Philipp
Czy nie istnieje jakiś rodzaj przestrzeni nazw lub użycie mniej ogólnych nazw funkcji, których można by tego uniknąć?
Peter Kionga-Kamau