Colonne personalizzate per la tabella della tassonomia

29 dic 2012, 23:52:46
Visualizzazioni: 22.1K
Voti: 16

Ho il seguente codice per aggiungere una nuova colonna alla schermata di modifica della mia tassonomia (edit-tags.php?taxonomy=book_place&post_type=books)

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

function add_book_place_column_content( $content ) {
    $content = 'test';
    return $content;
}
add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content' );

Funziona, ma ho bisogno di accedere all'ID del termine corrente nella funzione add_book_place_column_content. Come posso farlo?

0
Tutte le risposte alla domanda 1
1
25

L'hook filter manage_{TAXONOMY}_custom_column passa 3 argomenti:

  • $content
  • $column_name
  • $term_id

Quindi prova questo:

function add_book_place_column_content( $content, $column_name, $term_id ) {
    $term = get_term( $term_id, 'book_place' );
    switch ( $column_name ) {
        case 'foo':
            // Fai qui le tue operazioni 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
Commenti

Per quelli che, come me, potrebbero non averlo notato - il 10 e il 3 sono importanti. 10 è la priorità e 3 è il numero di argomenti. Se non inserisci il 3 passerà solo il primo argomento - senza termine. Se usi una classe: add_filter('manage_CUSTOMTAX_custom_column', array($this, 'handler_function'), 10, 3);

Kropotkin Kropotkin
20 apr 2024 20:20:14