Avatar
⭕️访问密码:kuhehe.vip

1.3.0版Typecho输出父子页面代码

酷小呵 默认分类 评 14  

之前问了AI问出来了父子页面输出代码!记录一下!

输出网站所有父页面列表

<?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
<?php while($pages->next()): ?>
    <?php if($pages->parent == 0): // 只显示父级页面 ?>
        <li>
            <a href="<?php $pages->permalink(); ?>"><?php $pages->title(); ?></a>
        </li>
    <?php endif; ?>
<?php endwhile; ?>

输出当前页面的一级子页面列表

<?php 
// 获取当前页面ID(适用于页面模板中)
$currentPageId = $this->cid;

$this->widget('Widget_Contents_Page_List')->to($pages); 
?>

<?php while($pages->next()): ?>
<?php if($pages->parent == $currentPageId): // 筛选当前页面的直属子页面 ?>
<li>
<a href="<?php $pages->permalink(); ?>"><?php $pages->title(); ?></a>
</li>
<?php endif; ?>
<?php endwhile; ?>

输出本站所有页面列表(有层级)

代码一

<?php
// 获取当前页面ID
$currentPageId = $this->cid;

// 获取所有页面并按父级ID分组存储
$this->widget('Widget_Contents_Page_List')->to($allPages);
$pageTree = [];
while ($allPages->next()) {
    $pageTree[$allPages->parent][] = [
        'id'    => $allPages->cid,
        'title' => $allPages->title,
        'link'  => $allPages->permalink
    ];
}

// 递归构建嵌套列表函数
function buildTree($parentId, $tree, $depth = 0) {
    if (!isset($tree[$parentId])) return;
    
    $indent = str_repeat('    ', $depth*2); // 缩进格式
    echo "{$indent}<ul class='level-{$depth}'>\n";
    
    foreach ($tree[$parentId] as $page) {
        echo "{$indent}    <li>\n";
        echo "{$indent}        <a href='{$page['link']}'>{$page['title']}</a>\n";
        buildTree($page['id'], $tree, $depth+1);
        echo "{$indent}    </li>\n";
    }
    
    echo "{$indent}</ul>\n";
}

// 执行输出
buildTree($currentPageId, $pageTree);
?>

代码二

<?php
$currentPageId = $this->cid;
$this->widget('Widget_Contents_Page_List')->to($pages);
$pageMap = [];

// 构建页面关系映射
while($pages->next()) {
    $pageMap[$pages->cid] = [
        'parent' => $pages->parent,
        'title'  => $pages->title,
        'link'   => $pages->permalink
    ];
}

// 递归查找所有子页面
function findAllChildren($parentId, $map, $depth = 0) {
    foreach ($map as $id => $page) {
        if ($page['parent'] == $parentId) {
            echo str_repeat('— ', $depth); // 用横线表示层级
            echo "<a href='{$page['link']}'>{$page['title']}</a><br>";
            findAllChildren($id, $map, $depth+1);
        }
    }
}

findAllChildren($currentPageId, $pageMap);
?>

没了!😶

typecho

更新于:

没有下一篇

已有 14 条评论

  1.   2025/11/27 07:49  回复

    lzrljuosiiekywgxrwmzffphfenond

  2. 《华纳圣淘沙公司开户流程全解析》→ 官方顾问一对一指导??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户步骤详解》→ 」专属通道快速办理??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙账户注册指南》→ 扫码获取完整资料清单?「微?? 安全联系:183第三段8890第四段9465
    《新手开通华纳圣淘沙公司账户指南》→ 限时免费咨询开放??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙企业开户标准流程》→ 资深顾问实时解答疑问??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户步骤全景图》→ 点击获取极速开户方案??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙账户创建全流程手册》→ 预约顾问免排队服务?9?? 安全联系:183第三段8890第四段9465 《从零开通华纳圣淘沙公司账户》→ 添加客服领取开户工具包?? 安全联系:183第三段8890第四段9465
    《官方授权:华纳圣淘沙开户流程》→ 认证顾问全程代办?」?? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户说明书》→立即联系获取电子版文件??? 安全联系:183第三段8890第四段9465

  3. 寻找华纳圣淘沙公司开户代理(183-8890-9465薇-STS5099】

    华纳圣淘沙官方合作开户渠道(183-8890-9465薇-STS5099】

    华纳圣淘沙公司开户代理服务(183-8890-9465薇-STS5099】

    华纳圣淘沙公司开户咨询热线(183-8890-9465薇-STS5099】

    联系客服了解华纳圣淘沙开户

    (183-8890-9465薇-STS5099】
    华纳圣淘沙公司开户专属顾问

    (183-8890-9465薇-STS5099】

  4. 华纳圣淘沙公司开户新手教程

    零基础学会(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)

    一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)

    华纳圣淘沙公司开户分步图解

    首次开户必看:(183-8890-9465薇-STS5099)
    华纳圣淘沙全攻略

    华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
    华纳圣淘沙开户流程视频教程

    手把手教学:(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)

  5. 华纳圣淘沙开户步骤详解(183-8890-9465—?薇-STS5099【6011643】

    华纳圣淘沙公司开户流程全解析(183-8890-9465—?薇-STS5099【6011643】
    华纳圣淘沙公司账户注册指南(183-8890-9465—?薇-STS5099【6011643】
    新手如何开通华纳圣淘沙公司账户(183-8890-9465—?薇-STS5099【6011643】
    华纳圣淘沙企业开户标准流程(183-8890-9465—?薇-STS5099【6011643】
    华纳圣淘沙公司开户:从零到一(183-8890-9465—?薇-STS5099【6011643】
    官方指南:华纳圣淘沙公司开户流程(183-8890-9465—?薇-STS5099【6011643】
    华纳圣淘沙公司开户流程说明书(183-8890-9465—?薇-STS5099【6011643】

  6. 东方明珠客服开户联系方式【182-8836-2750—】?μ- cxs20250806
    东方明珠客服电话联系方式【182-8836-2750—】?- cxs20250806】
    东方明珠开户流程【182-8836-2750—】?薇- cxs20250806】
    东方明珠客服怎么联系【182-8836-2750—】?薇- cxs20250806】

  7. 果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
    果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】

  8. 新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
    新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
    新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】

  9.   2025/8/2 09:49  回复

    不知道什么时候出正式版1.30

  10.   2025/8/1 15:53  回复

    不错,看清来挺精致的

    1. @满心  2025/8/1 15:55  回复

      嗯,是用final主题改的,但是评论区代码是我跟着网上教程,自己加上的

  11.   2025/7/31 17:40  回复

    出新版本了嘛?博客真好看

    1. @有趣云邮  2025/7/31 17:44  回复

      好像测试版是1.3.0版的吧,我现在用的是1.3.0的typecho,不过没怎么关注过这些🙃
      这个评论区我还是比较满意的(自己跟着网上教程加的)

  12.   2025/7/31 15:37  回复

    代码是问AI写出来的,所以可能不专业

1
微笑
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102