),默认 1 * · open 1 = 默认展开,0 = 默认收起,默认 1 * * 手写标记里写了的参数优先于后台设置,没写的才用后台设置。 * * ② 自动:后台「主题设置 → 自动目录」里选好,正文不用写任何东西。 * 显示方式是**两个独立开关**,可同时开启: * · 在正文中显示 → 子选项:正文中的对齐(靠左 / 靠右)、插入位置 * (文章开头 / 第一个 H1、H2 之前 / 文章结尾) * · 浮动显示 → 子选项:浮动方向(左侧 / 右侧) * 全开时同一篇文章里正文一份 + 浮动一份,两份指向同一批锚点。 * 另外还有:添加方式(手动 / 自动)、默认状态(显示 / 隐藏)、 * 目录标题、收录层级、是否显示序号。 * * ⚠️ 「靠左 / 靠右」是**正文容器内部**的对齐,不是浮到页面边上; * 「浮动方向」才是贴页面哪一边。这两件事曾经被合并成一个三选一的 * place 字段(center/left/right),导致两者永远互斥、无法同时开启。 * * ── 手写永远优先(仅限正文那一份)──────────────────────────── * 只要正文里有 [TOC],就**只**按作者写的位置渲染正文那一份,不再自动 * 插第二份。理由:作者明确表过态的地方,机器不该再替他做一次决定; * 否则老文章升级后会突然多出一个目录,位置还未必是他要的。 * * 但浮动面板是**独立开关**:它不属于正文流,作者写了 [TOC] 也没说过 * 「不要浮动目录」。所以 float=1 时照样出浮动面板。 * * ── 为什么默认收 h1(曾经错设成 "2,3")────────────────────── * 原先的理由是「h1 是文章标题本身,不该进目录」。这个理由是**假的**: * 文章标题输出在 single.php 的
, * 再去插 id 就和扫描时的文本不是同一份了。 * * 所以在优先级 9(早于 wpautop 和 do_shortcode)一次做完: * ① 给每个 h1~h6 补 id(已有 id 的沿用,不动别人的锚点) * ② 把 [TOC] 直接替换成目录 HTML,或按后台设置插到指定位置 * * 放在
剥掉, * 所以不会出现