agregar la categoría a la columna de administrador para un tipo de publicación personalizada?

13

He creado un tipo de publicación personalizado llamado artículo y la información proporcionada en la pantalla de resumen del administrador es escasa. Pude agregar la imagen en miniatura de la publicación de la imagen destacada usando el http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column de un tutorial.

Sin embargo, me gustaría poder obtener una visión general de las categorías y subcategorías que estas publicaciones les han asignado en la página de administración. es decir, agregar una columna para esa parte?

Aquí está el código que he usado para registrar la taxonomía en el código personalizado de tipos de publicación

Jonathan Beech
fuente
Puede usar un complemento como Columnas de administración de
Codepress

Respuestas:

18

La función register_taxonomy tiene un parámetro llamado show_admin_columnque se encargará de agregar una columna. ¿Has intentado eso?

p.ej:

register_taxonomy(
    'my_tax, 
    'post_type', 
    array(
        'label'             => 'My Taxonomy',
        'show_admin_column' => true,
        )
);
darrinb
fuente
1
Por favor, agregue código y explique cómo su uso responde a la pregunta. Si solo quiere preguntarle algo al OP, use los comentarios.
cybmeta
6

Después de algunas búsquedas, he encontrado una solución usando el manage_edit-${post_type}_columnsfiltro y la manage_${post_type}_posts_custom_columnacción.

Las columnas se crean con el filtro y luego la columna se llena con la acción. Supongo que se podrían agregar y completar columnas adicionales con bastante facilidad utilizando las ideas en este enlace http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types

add_filter('manage_edit-article_columns', 'my_columns');
function my_columns($columns) {
    $columns['article_category'] = 'Category';
return $columns;
}

add_action( 'manage_article_posts_custom_column', 'my_manage_article_columns', 10, 2 );

function my_manage_article_columns( $column, $post_id ) {
global $post;

switch( $column ) {

    /* If displaying the 'article_category' column. */
    case 'article_category' :

        /* Get the genres for the post. */
        $terms = get_the_terms( $post_id, 'article_category' );

        /* If terms were found. */
        if ( !empty( $terms ) ) {

            $out = array();

            /* Loop through each term, linking to the 'edit posts' page for the specific term. */
            foreach ( $terms as $term ) {
                $out[] = sprintf( '<a href="%s">%s</a>',
                    esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'article_category' => $term->slug ), 'edit.php' ) ),
                    esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'article_category', 'display' ) )
                );
            }

            /* Join the terms, separating them with a comma. */
            echo join( ', ', $out );
        }

        /* If no terms were found, output a default message. */
        else {
            _e( 'No Articles' );
        }

        break;

    /* Just break out of the switch statement for everything else. */
    default :
        break;
}
}
Jonathan Beech
fuente