WordPress 父级页列表输出所有子级页

本贴最后更新于 4437 天前,其中的信息可能已经事过境迁

前言
让父级页面像 taxonomy 归档页面(如目录、标签等)输出文章列表那样,输出所有的子页面和页面内容。今天考完六级回来贴吧里有 Wper 提到这个需求,这里不妨就此写一下。没有什么技巧可言,纯粹是利用了 wordpress 提供的原生函数
get_page_children();
函数介绍
其实每次都懒得对函数进行介绍,因为官网都有,而且函数的定义和表现都能在所提示的文件中找到比如说提示你函数位于 include/post.php。写出来太占篇幅了,看着文章挺长好像很牛 X 的样子,其实也就那么点东西。
<?php get_page_children( page_id, pages ) ?>
参数
$page_id (integer) (required) ——Page ID.
Default: None
$pages(array) (required)—— List of pages’ objects.
Default: None
函数返回值
(array)数组
代码
我们根据此次的应用需求来写一下代码,注意这只是测试代码,为了你好,也为了我方便,全部代码还是自己写吧。
1.将下面这段代码写入你新建的页面模板的内容区域,然后用此模板建立父级页面。
// Set up the objects needed
$my_wp_query = new WP_Query();
all_wp_pages = my_wp_query->query(array('post_type' => 'page'));

// Get the page as an Object
// 注:下面这句代码我们此次用不到,因为我们可以直接获得页面 ID,所以注释掉了
//$portfolio = get_page_by_title('父级页面');

// Filter through all pages and find Portfolio's children
portfolio_children = get_page_children(post->ID, $all_wp_pages);

// echo what we get back from WP to the browser
//注:下面这段代码实际中也不必添加,这次主要是为了让大家看清楚返回的数组
echo '

'.print_r($portfolio_children,true).'';

foreach(portfolio_children as k=>$v){

//下面这些你自己可以开始定义输出列表的形式
echo '<h1>'.$v->post_title.'</h1>';
echo '<p>'.$v->post_content.'</p>';

}
2.建立该页面的子页面,发布。
3.之后返回父页,查看,你就能看到如图的返回效果
返回以及输出
应用
利用这段代码可以让你在一个页面上列出所有子页面及其内容。当然你也可以显示摘要,更可以通过 php 截断显示固定字数。
结语
就像这样,在父级页面上显示子级页面的列表效果就完成了,当然输出代码需要根据主题写一下的,不然就像图片那样也太难看了。
不过有一点需要注意:
你的页面是按照一般的正常步骤发布的,即建立模板,调用,填写题目,填写内容,……发布,这样才有效。
而一些像我这样,独立页面都是自己写出来的(所有内容都是直接写进页面代码中)就不适用了,如果像采用这段代码的话,你还需要将页面的内容在 wordpress 后台编辑器再写一遍(写进数据库)才行。

  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 172 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 175 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 761 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    412 引用 • 3588 回帖 • 1 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 5 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖 • 1 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖 • 1 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    93 引用 • 122 回帖 • 619 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 404 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Visio
    1 引用 • 2 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    108 引用 • 153 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 252 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖 • 1 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 829 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 118 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖
  • Anytype
    3 引用 • 31 回帖 • 25 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    29 引用 • 202 回帖 • 28 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 519 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 613 关注