Columnas personalizadas para la tabla de lista de taxonomías

29 dic 2012, 23:52:46
Vistas: 22.1K
Votos: 16

Tengo el siguiente código para agregar una nueva columna a mi pantalla de edición de taxonomía (edit-tags.php?taxonomy=book_place&post_type=books)

// Agregar nueva columna
function add_book_place_columns( $columns ) {
    $columns['foo'] = 'Foo';
    return $columns;
}
add_filter( 'manage_edit-book_place_columns', 'add_book_place_columns' );

// Agregar contenido a la columna
function add_book_place_column_content( $content ) {
    $content = 'test';
    return $content;
}
add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content' );

Está funcionando, pero necesito acceder al ID del término actual en la función add_book_place_column_content. ¿Cómo puedo hacer eso?

0
Todas las respuestas a la pregunta 1
1
25

El hook de filtro manage_{TAXONOMY}_custom_column pasa 3 argumentos:

  • $content
  • $column_name
  • $term_id

Así que intenta esto:

function add_book_place_column_content( $content, $column_name, $term_id ) {
    $term= get_term( $term_id, 'book_place' );
    switch ( $column_name ) {
        case 'foo':
            // Haz tus operaciones aquí con $term o $term_id
            $content = 'test';
            break;
        default:
            break;
    }

    return $content;
}

add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content', 10, 3 );
30 dic 2012 01:24:26
Comentarios

Para aquellos que, como yo, podrían pasarlo por alto - los números 10 y 3 son clave. 10 es la prioridad y 3 es el número de argumentos. Si no pones el 3, solo pasa el primer argumento - no el término. Si usas una clase: add_filter('manage_CUSTOMTAX_custom_column', array($this, 'handler_function'), 10, 3);

Kropotkin Kropotkin
20 abr 2024 20:20:14