You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求推荐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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:12:08