Отображение колонок пользовательских таксономий в административной части WordPress

Отображение колонок пользовательских таксономий в административной части WordPress | n-wp.ru

Если вы используете пользовательские таксономии, то для управления постами удобно создать инструменты, с помощью которых можно отфильтровать посты по этим таксономиям. Это можно сделать, воспользовавшись кодом из поста Создание фильтра пользовательской таксономии в списке постов административной части WordPress – вариант достаточно удобный, однако имеющий один недостаток: хотя с помощью фильтра и можно выбрать посты определенной таксономии, названия пользовательских таксономий видны только при редактировании свойств записи или при полноценном редактировании записи. В списке постов административной части блога есть несколько колонок, по которым можно бегло оценить свойства записи: автор, рубрика, метки, количество комментариев, дата последнего редактирования, – неплохо бы добавить к этим колонками и колонки с названиями пользовательских таксономий.

Это можно сделать, если вставить нижеприведенный код в файл functions.php:

add_action('admin_init','taxocol_admin_init');

function taxocol_admin_init(){
    $post_types = get_post_types( );
    foreach($post_types as $post_type){
        add_filter('manage_'.$post_type.'_posts_columns','taxocol_taxlist_th');
        add_action('manage_'.$post_type.'_posts_custom_column','taxocol_taxlist_td',10,2);
    }
}

function taxocol_taxlist_th($columns){
    global $post_type;
    $postax = get_taxonomies( array( '_builtin'=>false,'object_type'=>array( $post_type ) ), 'objects' );
    foreach($postax as $tax){
        if(!in_array($post_type, $tax->object_type)){
           continue;
        }
        $offset = 1+array_search('author',array_keys($columns));
        $columns = array_slice($columns,0,$offset,true)
             + array($tax->name=>"
name}'>{$tax->labels->name}
") + array_slice($columns,$offset,NULL,true); } return $columns; } function taxocol_taxlist_td($col_name, $post_id){ global $post_type; $post_terms = array(); $tax = $col_name; $postax = get_taxonomies( array( '_builtin'=>false,'object_type'=>array( $post_type ) ), 'objects' ); if(array_key_exists($tax, $postax)){ $terms = get_the_terms($post_id, $tax); if ( !empty($terms) ) { foreach ( $terms as $term ){ $post_terms[] = "slug}'> " . esc_html(sanitize_term_field('name', $term->name, $term->term_id, $tax, 'edit')) . ""; } echo implode( ', ', $post_terms ); } else { echo '---'; } } }

Отображение колонок пользовательских таксономий в административной части WordPress

Пользовательские таксономии автоматически отображаются в виде отдельных колонок, отображение которых можно регулировать в закладке Настройка экрана.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

1 Kомментарий

  1. Как можно отредактировать ширину колонки, удалить неиспользуемые стандартные колонки и изменить порядок в котором они отображаются?

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*