表格形式的分层列表页面

时间:2013-05-30 作者:manticlight

我需要生成所有Wordpress页面的列表,并将其显示在HTML表格中,该表格将打印出来供脱机使用。

第一列为空,第二列为页面创建日期,第三列为最后一页修改日期,第四列为页面标题menu_order 若一个页面是其上一个页面的子页面,则需要指定该页面标题。

基本上,我需要一些类似于Wordpress“所有页面”列表的内容,但需要一个简单的表格格式,并且只需要上面的信息。

我在谷歌上搜索了几个小时,找到了一些代码片段,但什么都没找到。

wp_list_pages 不允许同时显示创建日期和修改日期,也无法获得所需的格式。

get_pages 更接近,但我不知道如何以我需要的方式获取子页的格式和缩进。

UPDATE:我能够按照我需要的顺序得到一个层次列表,但仍然需要弄清楚如何缩进子页面。在每个页面的页面数据中,都是其原始ID以及父ID。我现在需要做的是缩进所有子页面,使其看起来像:

ID 1 PARENT-ID 0
ID 2 PARENT-ID 0
    ID 3 PARENT-ID 2
    ID 4 PARENT-ID 2
        ID 5 PARENT-ID 4
    ID 6 PARENT-ID 2
ID 7 PARENT-ID 0
ID 8 PARENT-ID 0
   ID 9 PARENT-ID 8
数据正以这种精确的顺序输出。

代码来自Wp get all the sub pages of the parent using wp query - 题为“递归获取所有当前子页”的答案将返回一个多维数组,其中包含我需要的所有Post数据。

我知道这只是比较当前记录的父ID的问题,如果它与上面一级页面的ID匹配,则将其缩进。。。我只是不知道如何在一个简单的函数中做到这一点,其中任何记录的深度可以是任何数字。

1 个回复
SO网友:Rarst

有了这样的定制需求,您不太可能只需要一个片段就可以实现它。这是一个相当大的定制过程,处理分层数据总是很有挑战性。

当您使用wp_list_pages() 后台发生的事情是,它编译数据并传递给Walker_Page 类,它扩展了泛型Walker 类,这是在WP中完成层次结构数据输出的典型方式。

wp_list_pages() 可以接受custom walker的实例,但将其组合起来需要一些PHP技巧。您可以对其进行一些探索,并用所需输出的更多细节以及您与walker的合作程度来扩展您的问题。

否则,您将不得不完全从头开始构建输出。

结束

相关推荐

New Pages及其父级的永久链接

我遇到了一个新问题,当我尝试创建一个新页面时,永久链接并没有自动生成。例如,在“添加新页面”页面上,我选择“我们的俱乐部”作为家长(其中有一段“俱乐部”)。然后我键入“会员资格”作为标题。然而,在文本输入下面生成的永久链接表示www.coolclub.com/membership (而不是www.coolclub.com/club/membership 如预期)。如果不选择“Clubhouse”作为我的新页面的父页面(该页面本身已链接为“我们的俱乐部”的子页面),则会成功生成永久链接。有什么想法吗?