Adicionando colunas personalizadas a tipos de postagem personalizados


27

Já fiz isso anteriormente, mas esqueci o nome do gancho e não consigo encontrá-lo em nenhum lugar ...

O que estou tentando fazer é adicionar algumas colunas personalizadas na lista de um tipo de postagem personalizado no administrador.

Por exemplo, no administrador, clique em artigos , quero adicionar uma coluna personalizada lá.


i pediu (e respondeu) a mesma pergunta (incluindo como fazê-los classificáveis): wordpress.stackexchange.com/questions/253680/...
beta

Respostas:


57

Os ganchos para criar colunas personalizadas e seus dados associados para um tipo de postagem personalizado são manage_{$post_type}_posts_columnse manage_{$post_type}_posts_custom_column, respectivamente, onde {$post_type}é o nome do tipo de postagem personalizada.

Este exemplo da documentação remove a coluna do autor e adiciona uma coluna de taxonomia e metadados:

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

    }
}

11
Obrigado por este gancho !!! Isto é brilhante!! Não há documentação clara sobre o stackoverflow !!! : D Cheers mate
Rodrigo Zuluaga

não existe nenhuma opção para definir o número da coluna? gosto column_index[2]. Porque o custom_column aparece no final da coluna.
Dilip Gupta

As colunas @DilipGupta $ são uma matriz, você pode reordenar antes de devolvê-la
fogx

0

Não tenho certeza se os metadados personalizados padrão que você deseja mostrar como colunas, mas pode considerar usar esse plug-in gratuito que permite adicionar colunas para exibir campos personalizados. https://wordpress.org/plugins/codepress-admin-columns/

A versão pro ainda permite adicionar filtragem, classificação e edição embutida a essas colunas.


NÃO USE! Irá quebrar o site: PHP Erro fatal: Não é possível redefinir AC () (declarado anteriormente em [redigido] \\ wp-content \\ themes \ [redigido] \\ functions.php: 628) em [redigido] \\ wp-content \\ plugins \\ api.php codepress-admin-colunas \\ na linha 9
Peter Kionga-Kamau

@ PeterKionga-Kamau, este é um problema de compatibilidade com o seu tema específico. O erro que você postou não aparecerá com um tema padrão do WP (como vinte e vinte); Eu também uso o plugin com o Divi Theme e acho bastante útil
Philipp

Não existe algum tipo de espaço para nome ou uso de nomes de funções menos genéricos que poderiam ser usados ​​para evitar isso?
Peter Kionga-Kamau
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.