Пользовательские колонки для таблицы списка таксономии

29 дек. 2012 г., 23:52:46
Просмотры: 22.1K
Голосов: 16

У меня есть следующий код для добавления новой колонки на экран редактирования таксономии (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' );

Это работает, но мне нужно получить доступ к ID текущего термина в функции add_book_place_column_content. Как я могу это сделать?

0
Все ответы на вопрос 1
1
25

Фильтр-хук manage_{TAXONOMY}_custom_column принимает 3 аргумента:

  • $content
  • $column_name
  • $term_id

Попробуйте следующий код:

function add_book_place_column_content( $content, $column_name, $term_id ) {
    $term = get_term( $term_id, 'book_place' );
    switch ( $column_name ) {
        case 'foo':
            // Здесь можно работать с $term или $term_id
            $content = 'test';
            break;
        default:
            break;
    }

    return $content;
}

add_filter( 'manage_book_place_custom_column', 'add_book_place_column_content', 10, 3 );
30 дек. 2012 г. 01:24:26
Комментарии

Для тех, кто, как и я, мог это упустить — числа 10 и 3 являются ключевыми. 10 — это приоритет, а 3 — количество аргументов. Если не указать 3, то передается только первый аргумент — без термина. При использовании класса: add_filter('manage_CUSTOMTAX_custom_column', array($this, 'handler_function'), 10, 3);

Kropotkin Kropotkin
20 апр. 2024 г. 20:20:14