Coloane personalizate pentru tabelul listei de taxonomii

29 dec. 2012, 23:52:46
Vizualizări: 22.1K
Voturi: 16

Am următorul cod pentru a adăuga o coloană nouă în ecranul de editare a taxonomiei (edit-tags.php?taxonomy=book_place&post_type=books)

// Adaugă o nouă coloană numită 'foo'
function add_book_place_columns( $columns ) {
    $columns['foo'] = 'Foo';
    return $columns;
}
add_filter( 'manage_edit-book_place_columns', 'add_book_place_columns' );

// Adaugă conținut în coloana personalizată
function add_book_place_column_content( $content ) {
    $content = 'test';
    return $content;
}
add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content' );

Funcționează, dar am nevoie să accesez ID-ul termenului curent în funcția add_book_place_column_content. Cum pot face acest lucru?

0
Toate răspunsurile la întrebare 1
1
25

Filtrul manage_{TAXONOMY}_custom_column primește 3 argumente:

  • $content
  • $column_name
  • $term_id

Încearcă astfel:

function add_book_place_column_content( $content, $column_name, $term_id ) {
    $term= get_term( $term_id, 'book_place' );
    switch ( $column_name ) {
        case 'foo':
            // Fă aici ce ai nevoie cu $term sau $term_id
            $content = 'test';
            break;
        default:
            break;
    }

    return $content;
}

add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content', 10, 3 );
30 dec. 2012 01:24:26
Comentarii

Pentru cei care, ca mine, ar putea să nu observe - numerele 10 și 3 sunt cheie. 10 reprezintă prioritatea și 3 este numărul de argumente. Dacă nu specificați 3, va fi transmis doar primul argument - fără termen. Dacă folosiți o clasă: add_filter('manage_CUSTOMTAX_custom_column', array($this, 'handler_function'), 10, 3);

Kropotkin Kropotkin
20 apr. 2024 20:20:14