地质网老白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 = $group['rights']; if (is_string($rights_data)) { if (@unserialize($rights_data) !== false) { $rights_data = unserialize($rights_data); } $rules = array_filter(explode("\n", $rights_data)); } elseif (is_array($rights_data)) { $rules = array_filter($rights_data); } else { continue; } foreach ($rules as $rule) { $rule = trim($rule); if (empty($rule)) continue; $parts = preg_split('/\||:/', $rule); if (count($parts) < 2) continue; $user_group = trim($parts[0]); $permission = trim($parts[1]); $display_group = $user_group; if (preg_match('/^all$/i', $user_group)) { $display_group = esc_html__('所有人', 'b2'); } elseif (preg_match('/^guest$/i', $user_group)) { $display_group = esc_html__('游客', 'b2'); } elseif (preg_match('/^vip\d*$/i', $user_group)) { $display_group = strtoupper($user_group); } $display_perm = ''; if (preg_match('/money\s*=\s*(\d+)/i', $permission, $matches)) { $display_perm = sprintf(esc_html__('付费%s元', 'b2'), $matches[1]); } elseif (preg_match('/credit\s*=\s*(\d+)/i', $permission, $matches)) { $display_perm = sprintf(esc_html__('积分%s', 'b2'), $matches[1]); } elseif (preg_match('/^(free|login|comment)$/i', $permission, $matches)) { $display_perm = esc_html__([ 'free' => '免费', 'login' => '登录可见', 'comment' => '评论可见' ][strtolower($matches[1])], 'b2'); } if (!empty($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, 'VIP' => 2 ]; preg_match('/^(.*?)\s/', $a, $a_matches); preg_match('/^(.*?)\s/', $b, $b_matches); $a_group = $a_matches[1] ?? ''; $b_group = $b_matches[1] ?? ''; $a_priority = $priority_map[$a_group] ?? (stripos($a_group, 'VIP') === 0 ? 2 : 3); $b_priority = $priority_map[$b_group] ?? (stripos($b_group, 'VIP') === 0 ? 2 : 3); return $a_priority - $b_priority; }); echo '<div class="b2-permission-rules">'; echo implode(';', $permission_rules); echo '</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
文件底部
3.相关文章
B2主题可扩展的东西很多,老白以后会结合自己的使用情况发布相关教程或者插件
如有个性化定制以及功能开发可联系老白
B2主题通用美化:https://www.dzw6.com/tag/b2-theme-beautify
B2主题圈子美化:https://www.dzw6.com/tag/b2_theme_circle
WordPress顶级优化教程:https://www.dzw6.com/tag/wordpress_optimization