求推荐WordPress插件或代码:展示媒体库PDF文件并支持名称筛选
实现WordPress媒体库PDF列表及筛选的方案
一、插件方案
- Media Library Categories:自带分类管理与基础筛选功能,可给PDF文件添加分类/标签,媒体库默认的搜索框直接支持按文件名匹配筛选,无需额外配置就能快速管理和展示PDF列表。
- FileBird:专注媒体库文件整理的插件,支持文件夹分类,内置搜索筛选工具,能一键过滤出所有PDF文件,界面直观,适合批量管理和前端展示。
- Advanced Custom Fields (ACF):灵活性高,可给PDF添加自定义筛选属性(如文件类型标签),配合自定义短代码输出列表,能实现更精准的匹配模式筛选,需要简单的字段配置和代码逻辑编写。
二、自定义代码方案
若不想依赖插件,以下代码可实现核心功能:
1. 带名称筛选的PDF列表短代码
将代码添加到主题functions.php或自定义插件中:
function pdf_list_with_filter() { ob_start(); // 获取前端输入的筛选关键词 $search_term = isset($_GET['pdf_search']) ? sanitize_text_field($_GET['pdf_search']) : ''; // 输出筛选表单 echo '<form method="get" action="">'; echo '<input type="text" name="pdf_search" placeholder="搜索PDF名称..." value="' . esc_attr($search_term) . '">'; echo '<button type="submit">筛选</button>'; echo '<input type="hidden" name="post_type" value="attachment">'; echo '</form>'; // 查询媒体库中的PDF文件 $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'application/pdf', 'posts_per_page' => -1, 's' => $search_term, // 按标题/名称匹配 'orderby' => 'title', 'order' => 'ASC' ); $pdf_query = new WP_Query($args); // 渲染PDF列表 if ($pdf_query->have_posts()) { echo '<ul class="pdf-list">'; while ($pdf_query->have_posts()) { $pdf_query->the_post(); $pdf_url = wp_get_attachment_url(get_the_ID()); echo '<li><a href="' . esc_url($pdf_url) . '" target="_blank">' . get_the_title() . '</a></li>'; } echo '</ul>'; wp_reset_postdata(); } else { echo '<p>未找到匹配的PDF文件</p>'; } return ob_get_clean(); } add_shortcode('pdf_filter_list', 'pdf_list_with_filter');
使用方式:在页面/文章中插入短代码[pdf_filter_list],即可显示带搜索框的PDF列表,输入关键词即可按名称实时筛选。
2. 扩展:自定义匹配模式筛选
若需要按自定义规则(如文件标签)筛选,可先给PDF添加自定义字段(如pdf_category),再修改查询参数:
// 在$args数组中添加meta_query 'meta_query' => array( array( 'key' => 'pdf_category', 'value' => $search_term, 'compare' => 'LIKE' // 模糊匹配,可改为'='实现精确匹配 ) )
同时调整筛选表单,增加标签选择或多条件输入框即可实现更复杂的匹配逻辑。
内容的提问来源于stack exchange,提问作者Davout
相关产品推荐
相关产品推荐

