emlog首页列表隐藏过滤指定分类ID文章逻辑代码

emlog首页列表隐藏过滤指定分类ID文章逻辑代码

这段代码的核心亮点是「精准区分页面类型」,通过 emlog 模板原生变量 $sortid 识别首页与分类页,既实现了 “首页隐藏指定分类日志” 的需求,又不破坏分类页的正常显示,同时保留了 emlog 的插件扩展能力和模板语法规范性。理解其逻辑后,可灵活修改:调整分类 ID、隐藏多个分类、反向显示指定分类等,适配不同的博客运营需求,是 emlog 模板定制中 “日志列表精准过滤” 的典型实用方案。<?php if (!empty($logs)): // 检查是否有日志数据    foreach ($logs as $value): // 遍历每一篇日志        // 核心修改:仅在「首页」时,隐藏分类ID=3的日志        if (!isset($sortid) && $value == 3) continue; ?>第 1 行:if (!empty($logs)): // 检查是否有日志数据1. 核心作用判断是否存在可显示的日志数据,避免空数组遍历导致的语法报错。2. 详细解释$logs:emlog 核心程序传递给首页模板的「日志数据数组」,包含当前页所有待显示日志的完整信息(标题、内容、发布时间、分类 ID、作者、日志链接等),已自动完成分页、按发布时间排序处理。!empty($logs):PHP 判断函数,含义是 “$logs 不为空”(既不是空数组,也不是 null/false)。语法细节:使用 emlog 模板友好的「替代语法」: 而非 {,原因是模板中需要混合 PHP 和 HTML,替代语法更易阅读、不易漏写闭合标签。第 2 行:foreach ($logs as $value): // 遍历每一篇日志1. 核心作用循环遍历所有日志数据,为单条日志的 HTML 输出提供数据支持。2. 详细解释foreach ($logs as $value):PHP 循环语句,作用是 “依次取出数组中的每一个元素,赋值给变量value”。遍历逻辑:若中有篇日志,循环会执行次,每次循环中value 都对应「单篇日志的完整数据」(比如第 1 次 $value 是第 1 篇日志的信息,第 2 次是第 2 篇,以此类推)。语法细节:延续替代语法 :,与后续的 endforeach; 配对闭合,避免与 HTML 标签混淆。第 3-4 行:// 核心修改:仅在「首页」时,隐藏分类ID=3的日志 if (!isset($sortid) && $value == 3) continue;核心作用区分页面类型过滤日志:仅当 “当前是首页” 且 “日志属于分类 ID=3” 时,隐藏该日志,分类页不受影响。关键修改说明(仅 1 行代码调整)在 foreach ($logs as $value): 之后,添加这一行:if (!isset($sortid) && $value == 3) continue;隐藏多个分类(如同时隐藏分类 3、5、7)将核心过滤条件修改为 in_array() 函数,适配多分类 ID:// 仅首页隐藏分类ID=3、5、7的日志 if (!isset($sortid) && in_array($value, )) continue;本站首页就隐藏了技术分享子类目下内容可自行查看

2025-12-03 345 阅读 0 评论