Как разделить библиотеку медиаконтента в WordPress по категориям

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

Почему важно разделять медиатеку WordPress по категориям

Если вы ведете блог, интернет-магазин или любой другой ресурс с большим количеством визуального контента, разделение медиатеки на категории помогает:

  • ускорить поиск нужных файлов;
  • упростить процесс редактирования и замены медиа;
  • организовать медиа по проектам, разделам сайта или типам контента;
  • повысить производительность за счет уменьшения объема данных, загружаемых в интерфейс библиотеки.

Поэтому вопрос категоризации медиафайлов — частая задача для разработчиков и администраторов WordPress.

Как создавать собственные категории для медиа с помощью кода

По умолчанию WordPress не поддерживает категории для вложений, но мы можем добавить их с помощью так называемых таксономий. Пример реализации в functions.php вашей темы или в собственном плагине:

function wpaction_register_media_categories() {
    register_taxonomy('media_category', 'attachment', [
        'hierarchical' => true,
        'label' => 'Категории медиа',
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        'rewrite' => ['slug' => 'media-category'],
    ]);
}
add_action('init', 'wpaction_register_media_categories');

Этот код создаст новую иерархическую таксономию media_category, доступную для вложений (медиафайлов). После добавления таксономии вы увидите возможность назначать категории в редакторе медиафайлов.

Добавление категорий к уже загруженным файлам

Чтобы массово назначить категории к существующим файлам, можно использовать следующий пример кода:

function wpaction_assign_category_to_attachments($term_slug) {
    $args = [
        'post_type' => 'attachment',
        'posts_per_page' => -1,
        'post_status' => 'inherit',
    ];
    $attachments = get_posts($args);
    foreach ($attachments as $attachment) {
        wp_set_object_terms($attachment->ID, $term_slug, 'media_category', true);
    }
}
// wpaction_assign_category_to_attachments('my-category-slug');
<

Разкомментируйте вызов функции и замените my-category-slug на нужный ярлык категории, чтобы массово назначить ее.

Плагины для организации медиатеки по категориям

Если вы не хотите писать код, можно использовать плагины, которые реализуют разделение медиатеки по категориям:

  • Media Library Categories — простой и бесплатный плагин для добавления таксономий к медиафайлам.
  • Enhanced Media Library — более функциональный инструмент с поддержкой категорий, фильтров и типов медиа.
  • Clearfy Pro — комплексный плагин оптимизации, включающий расширенные возможности для работы с медиатекой.

Например, после установки Media Library Categories разделение медиафайлов на категории станет доступно сразу, а в админ-панели появятся удобные фильтры.

Как фильтровать медиатеку по категориям в админке WordPress

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

Чтобы добавить такой фильтр программно, используйте следующий код:

function wpaction_filter_media_by_category() {
    $screen = get_current_screen();
    if ('upload' !== $screen->id) {
        return;
    }
    $taxonomy = 'media_category';
    wp_dropdown_categories([
        'show_option_all' => 'Все категории',
        'taxonomy' => $taxonomy,
        'name' => $taxonomy,
        'orderby' => 'name',
        'selected' => isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '',
        'hierarchical' => true,
        'depth' => 3,
        'show_count' => true,
        'hide_empty' => true,
    ]);
}
add_action('restrict_manage_posts', 'wpaction_filter_media_by_category');

function wpaction_filter_media_query($query) {
    global $pagenow;
    $taxonomy = 'media_category';
    if ('upload.php' == $pagenow && !empty($_GET[$taxonomy])) {
        $query->query_vars[$taxonomy] = $_GET[$taxonomy];
    }
}
add_filter('parse_query', 'wpaction_filter_media_query');

Как использовать категории медиа в шаблонах темы

Если вы хотите вывести медиафайлы из определенной категории на страницах сайта, можно использовать WP_Query с параметром таксономии:

$args = [
    'post_type' => 'attachment',
    'posts_per_page' => 10,
    'tax_query' => [
        [
            'taxonomy' => 'media_category',
            'field' => 'slug',
            'terms' => 'my-category-slug',
        ]
    ],
];
$query = new WP_Query($args);
if ($query->have_posts()) {
    echo '<ul>';
    while ($query->have_posts()) {
        $query->the_post();
        $url = wp_get_attachment_url(get_the_ID());
        echo '<li><a href="' . esc_url($url) . '">' . get_the_title() . '</a></li>';
    }
    echo '</ul>';
}
wp_reset_postdata();

Это позволит выводить на сайте галереи или списки медиафайлов из выбранных категорий без сторонних плагинов.

Рекомендации по работе с категоризированной медиатекой

Чтобы эффективно поддерживать порядок в медиатеке, советую:

  • регулярно добавлять категории при загрузке новых файлов;
  • использовать удобные плагиновые решения, если нужно быстро внедрить функционал;
  • автоматизировать назначение категорий с помощью кода, например, по типу файла или по проекту;
  • организовать резервное копирование базы данных и медиафайлов, чтобы не потерять структуру.

Если вы используете плагин Clearfy Pro, обратите внимание на его настройки, связанные с медиа, которые помогают дополнительно оптимизировать работу с библиотекой.

Как использовать хуки для динамического изменения контента в WordPress
04.03.2026
Как отключить REST API в WordPress для защиты сайта
13.02.2026
Как создать настройки темы в WordPress с примерами кода
18.11.2025
Как удалить заблокированные пользователи из WordPress
09.12.2025
Как создать группу пользователей в WordPress с правилами доступа
04.01.2026