如何在WordPress中创建带跳转计数器的独立下载页面
WordPress实现带下载计数的独立下载页面方案
下面提供两种可直接落地的实现方式,你可以根据自己的技术基础选择:
方案1:插件快速实现(无代码基础推荐)
- 直接在WordPress后台插件库搜索安装Download Monitor,这是目前维护最稳定的下载管理类插件
- 启用插件后,后台会新增「下载」专属菜单,进入后新建下载项目,上传本地文件或者填入外部下载地址即可
- 进入插件设置页的「页面」配置项,开启独立下载页功能,可自定义下载页的路径前缀、页面模板、是否需要等待倒计时、是否验证访客身份等规则
- 后续在文章/页面中插入下载链接时,直接用插件生成的短码
[download id="对应下载项目ID"]插入即可,访客点击链接会自动跳转到独立下载页,每次有效下载都会自动累计次数,插件自带统计面板可查看下载时段、访客来源等数据
方案2:自定义代码实现(灵活性更高,可完全自定义页面样式)
不需要依赖第三方插件,所有逻辑可控:
- 将以下代码添加到你当前使用主题的
functions.php文件中:
// 注册下载资源自定义文章类型 function custom_download_post_type() { register_post_type('download', array( 'labels' => array( 'name' => __('下载资源'), 'singular_name' => __('下载资源') ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'download'), 'supports' => array('title', 'editor', 'thumbnail'), ) ); } add_action('init', 'custom_download_post_type'); // 新增下载次数统计字段 function add_download_count_meta() { add_meta_box('download_count_meta', '下载次数', 'download_count_meta_callback', 'download', 'side'); } add_action('add_meta_boxes', 'add_download_count_meta'); function download_count_meta_callback($post) { $count = get_post_meta($post->ID, 'download_count', true) ? : 0; echo '<input type="number" name="download_count" value="'.$count.'" readonly>'; } // 保存下载次数配置 function save_download_count($post_id) { if (isset($_POST['download_count'])) { update_post_meta($post_id, 'download_count', $_POST['download_count']); } } add_action('save_post', 'save_download_count'); // 下载计数+跳转逻辑 function download_count_redirect() { if (is_singular('download') && isset($_GET['action']) && $_GET['action'] == 'get') { $post_id = get_the_ID(); $file_url = get_post_meta($post_id, 'download_file_url', true); if ($file_url) { // 下载次数+1 $count = get_post_meta($post_id, 'download_count', true) ? : 0; update_post_meta($post_id, 'download_count', $count + 1); // 跳转到实际下载地址 wp_redirect($file_url); exit; } } } add_action('template_redirect', 'download_count_redirect');
- 刷新后台后会出现「下载资源」专属菜单,新建下载资源时,添加自定义字段
download_file_url,值为你的实际下载地址 - 复制主题目录下的
single.php文件,重命名为single-download.php,这就是你的独立下载页模板,可任意修改样式,要显示下载次数时插入代码echo get_post_meta(get_the_ID(), 'download_count', true) ? : 0;即可,下载按钮的链接填写<?php echo get_permalink(); ?>?action=get - 后续在其他内容中插入下载链接时,直接放对应下载资源的固定链接即可,访客点击会进入独立下载页,点击下载按钮后自动累计次数再跳转实际下载地址
内容的提问来源于stack exchange,提问作者tnfsmith
相关产品推荐
相关产品推荐

