如何添加筛选功能,只显示某个类别的zip附件

[复制链接]  66查看
易西 发表于 2025-9-2 21:03:56 | 显示全部楼层 |阅读模式
如何添加筛选功能,只显示某个类别的zip附件
 楼主| 易西 发表于 2025-9-2 21:04:21 | 显示全部楼层
在WordPress中实现仅显示特定类别下的zip附件筛选功能,可通过以下两种方案实现:

方案一:使用自定义分类法+附件类型筛选
‌注册自定义分类法‌
在主题的functions.php中添加代码创建专用于附件的分类系统
7
9:
php
Copy Code
add_action('init', 'register_attachment_taxonomy');
function register_attachment_taxonomy() {
    register_taxonomy('attachment_category', 'attachment', array(
        'label' => '附件分类',
        'hierarchical' => true,
        'show_admin_column' => true
    ));
}
‌修改附件上传类型限制‌
允许上传zip文件并扩展MIME类型检测
11:
php
Copy Code
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes($mimes) {
    $mimes['zip'] = 'application/zip';
    return $mimes;
}
‌创建筛选短代码‌
生成可按分类筛选zip附件的短代码
8
19:
php
Copy Code
add_shortcode('filter_zip_attachments', 'filter_zip_attachments_func');
function filter_zip_attachments_func($atts) {
    ob_start();
    $terms = get_terms('attachment_category');
    echo '<select id="zip-category-filter"><option value="">选择分类</option>';
    foreach ($terms as $term) {
        echo '<option value="'.$term->slug.'">'.$term->name.'</option>';
    }
    echo '</select><div id="zip-results"></div>';
    return ob_get_clean();
}
方案二:使用WP_Query高级筛选
‌构建自定义查询‌
通过WP_Query的tax_query和post_mime_type参数组合查询
16
19:
php
Copy Code
function get_filtered_zips($category_slug) {
    $args = array(
        'post_type' => 'attachment',
        'post_status' => 'inherit',
        'posts_per_page' => -1,
        'tax_query' => array(
            array(
                'taxonomy' => 'attachment_category',
                'field' => 'slug',
                'terms' => $category_slug
            )
        ),
        'post_mime_type' => 'application/zip'
    );
    return new WP_Query($args);
}
‌前端AJAX交互‌
添加JavaScript处理筛选请求
18:
javascript
Copy Code
jQuery(document).ready(function($) {
    $('#zip-category-filter').change(function() {
        $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: {
                action: 'filter_zip_attachments',
                category: $(this).val()
            },
            success: function(response) {
                $('#zip-results').html(response);
            }
        });
    });
});
可视化插件方案(推荐)
对于非开发者,可安装SearchWP插件
18或Filter Everything插件
16,通过后台配置实现:

在插件设置中启用"附件"作为可搜索内容类型
添加基于自定义分类法的筛选条件
设置文件类型过滤为application/zip
两种技术方案均需注意:分类法注册后需在媒体库中为zip文件分配分类,且方案一需将短代码插入目标页面
7
9。对于大型媒体库,建议添加分页功能优化性能
6。

参考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

邮箱|首页|小黑屋|吾侪 ( 蜀ICP备2020029307号-4 )

GMT+8, 2026-8-3 07:16 , Processed in 0.056614 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © , 吾侪网

快速回复 返回顶部 返回列表