地质网老白7B2主题美化教程系列:应评论区站友邀请开发7B2主题批量修改文章下载权限2025升级版。支持后台自定义设置,无需更改权限代码,且仅修改下载权限字段,不会导致其他字段内容清空;并在文章列表增加了“下载权限”列,简明易懂,操作简单。详细教程如下:
1.文章列表下载权限列
1.1 效果演示
如下,文章列表直接能看到设置的下载权限、游客是否允许购买等信息
1.2 实现代码
将下面的代码添加主题或子主题function
文件底部
// 7B2主题文章列表添加下载权限-https://www.dzw6.com/33915.html add_filter('manage_posts_columns', 'dzw6_add_download_column'); add_action('manage_posts_custom_column', 'dzw6_render_download_column', 10, 2); function dzw6_add_download_column($columns) { $columns['download_permission'] = esc_html__('下载权限', 'b2'); return $columns; } function dzw6_render_download_column($column, $post_id) { if ($column !== 'download_permission') return; $download_status = get_post_meta($post_id, 'b2_open_download', true); if (empty($download_status)) { echo '<span class="b2-download-status">'.esc_html__('未启用', 'b2').'</span>'; return; } $permission_rules = []; $groups = get_post_meta($post_id, 'b2_single_post_download_group', true); if (!empty($groups) && is_array($groups)) { foreach ($groups as $group) { if (!is_array($group) || empty($group['rights'])) continue; // 增强反序列化处理 $rights_data = maybe_unserialize($group['rights']); if (!is_array($rights_data)) { $rights_data = explode("\n", $rights_data); } $rules = array_filter((array)$rights_data); foreach ($rules as $rule) { $rule = trim($rule); if (empty($rule)) continue; // 更严格的分割逻辑 $parts = array_map('trim', explode('|', $rule, 2)); if (count($parts) < 2) continue; list($user_group, $permission) = $parts; // 用户组显示逻辑优化 $display_group = ''; if (preg_match('/^all$/i', $user_group)) { $display_group = esc_html__('所有人', 'b2'); } elseif (preg_match('/^lv(\d+)$/i', $user_group, $matches)) { $display_group = 'LV'.$matches[1]; } elseif (preg_match('/^vip(\d+)$/i', $user_group, $matches)) { $display_group = 'VIP'.$matches[1]; } else { $display_group = strtoupper($user_group); } // 权限解析逻辑 $display_perm = ''; if (preg_match('/money=(\d+)/i', $permission, $matches)) { $display_perm = sprintf(esc_html__('付费%s元', 'b2'), $matches[1]); } elseif (preg_match('/credit=(\d+)/i', $permission, $matches)) { $display_perm = sprintf(esc_html__('积分%s', 'b2'), $matches[1]); } else { $type_map = [ 'free' => esc_html__('免费', 'b2'), 'login' => esc_html__('登录可见', 'b2'), 'comment' => esc_html__('评论可见', 'b2') ]; $display_perm = $type_map[strtolower($permission)] ?? ''; } if ($display_perm) { $permission_rules[] = $display_group . ' ' . $display_perm; } } } } // 游客允许购买处理 if (get_post_meta($post_id, 'b2_down_guest_buy', true)) { array_unshift($permission_rules, esc_html__('游客允许购买', 'b2')); } if (!empty($permission_rules)) { $permission_rules = array_unique($permission_rules); // 保持原有排序逻辑 usort($permission_rules, function($a, $b) { $priority_map = [ esc_html__('所有人', 'b2') => 0, esc_html__('游客', 'b2') => 1, esc_html__('普通用户', 'b2') => 2, 'LV' => 3, // LV数字类型 esc_html__('VIP用户', 'b2') => 4, 'VIP' => 5 // VIP数字类型 ]; preg_match('/^(.*?)\s/', $a, $matches); $a_group = $matches[1] ?? ''; preg_match('/^(.*?)\s/', $b, $matches); $b_group = $matches[1] ?? ''; $a_type = strpos($a_group, 'LV') === 0 ? 'LV' : (strpos($a_group, 'VIP') === 0 ? 'VIP' : $a_group); $b_type = strpos($b_group, 'LV') === 0 ? 'LV' : (strpos($b_group, 'VIP') === 0 ? 'VIP' : $b_group); $a_priority = $priority_map[$a_type] ?? 6; $b_priority = $priority_map[$b_type] ?? 6; return $a_priority - $b_priority; }); echo '<div class="b2-permission-rules">'.implode(';', $permission_rules).'</div>'; } else { echo '<span class="b2-no-rules">'.esc_html__('无权限限制', 'b2').'</span>'; } } // 7B2主题文章列表添加下载权限-https://www.dzw6.com/33915.html
2.批量调整文章阅读权限
2.1 效果演示及操作
2.1.1 下载权限设置
点击设置-下载权限设置
设置需要的权限(级别老白已设置为自动读取)
如果付费下载和积分下载请设置对应数量,支持随机模式与固定模式
2.1.2 下载权限应用
保存权限规则后,点击文章列表,右上角设置文章数量,选中需要编辑文章批量应用即可
(温馨提示,请备份数据库后操作)
2.2 实现代码
如下,添加主题或子主题function
文件底部
本文为可视化版,若要批量对所有普通用户或者VIP用户调整,可见纯代码版:
3.相关文章
3.1 定制开发接单
B2主题可扩展的东西很多,老白会结合自己的使用情况发布相关教程或者插件
如有个性化定制以及功能开发可联系老白微-信:x c b t m w(防爬虫间隔符)
3.2 建站经验
B2主题通用美化:https://www.dzw6.com/tag/b2-theme-beautify
B2主题圈子美化:https://www.dzw6.com/tag/b2_theme_circle
WordPress建站经验:https://www.dzw6.com/share/wordpress
所有人(包含游客)的权限是最高的,可以不设置 所有人(包含游客)的权限吗?一旦设置,后面的权限都回不生效了
好的老哥,我再优化下。下载功能我用得不多,你加我微信咱们沟通细节
老哥,这个插件有一个问题,批量设置权限之后,会把之前的 网盘链接 删除。就是链接资源内容没有了
老哥你加我微信xcbtmw
多谢老哥支持😁😁