是否按特定顺序列表子页面?

时间:2010-09-01 作者:cannyboy

我试图以列表的特定顺序显示子页面。

这是我将页面输出为列表的代码:

$parent = $wp_query->post->ID;
wp_list_pages("title_li=&child_of=$parent&echo=1&sort_column=post_title" );
现在,我想按特定顺序显示前四页:

总结信息组条目另一页换句话说,Summary, Info, Groups, Entries 应按顺序显示(如果存在)以及下面的其他页面。我将如何实现这一点?我注意到有一些参数可以使用wp_list_pages. 这些参数将页面ID号作为变量,因此我可能会使用以下伪代码:

制作一个包含标题中的摘要、信息、组、条目的子页面ID数组,并正确排序。制作一个不包含4个页面的子页面ID数组,将这些数组连接在一起,打印出页面ID数组的html

3 个回复
最合适的回答,由SO网友:Ryan Gibbons 整理而成

根据您的评论,这里还有另一个选项,即使用wp\\U list\\u页面,无需使用数组和手动提取内容,我省略了一系列选项,只保留了一些基本要素。

<ul>
<?php
  $priority_pages = \'5,1,3,7\';
  wp_list_pages(array(\'include\' => $priority_pages);
  wp_list_pages(array(\'exclude\' => $priority_pages);
?>
</ul>
因为,wp\\u list\\u页面只提供<li> 元素,可以多次使用此函数来提取所需的所有页面。因此,现在您只能从顶部取出所需的页面,然后将其余页面拉入。您可以使用所有其他选项像普通一样对树进行排序和过滤(注意,我喜欢使用数组而不是字符串,代码看起来更干净)。

阅读codex page for wp_list_pages 有关更多选项

获取你想要的ID列表。

<?php
  $my_wp_query = new WP_Query();
  $all_wp_pages = $my_wp_query->query(array(\'post_type\' => \'page\'));

  $parent = $wp_query->$post-ID;
  $children = $get_page_children($parent, $all_wp_pages);
?>
我们现在拥有的是$children 我们需要的信息。现在我要做的是循环$children 正在查找文件post_title 等于您想要的,并存储ID. 通过将这些存储为数组,您将能够使用包含、排除函数wp_list_pages

虽然不是100%完成,但它会让你开始

<?php
  $priority_pages_a = array();
  foreach($children as $child) {
    if(strpos($child->post_title,"Summary") {
      $priority_pages_a[0] = $child->ID;
    } elseif (strpos($child->post_title,"Info") {
      $priority_pages_a[1] = $child->ID;
    }
  }

  $priority_pages = implode(",",$priority_pages_a);

?>
我们所做的是创建一个数组,将ID按您想要的数组顺序放置。然后将其内爆为逗号分隔的字符串,可以使用wp_list_pages 获得你想要/需要的。

这个get_page_children 不接触数据库,但“获取所有”页面会这样做:/所以这是一个清洗。

我还没有完全测试过这段代码,但它应该可以工作。

另请注意get_page_by_title, 因此,如果你的标题完全是“摘要”,那么你可以用它来获取ID,但在你的问题中,你说包含,所以我选择了这条路线。

SO网友:prettyboymp

wp\\u list\\u pages()函数接受“sort\\u column”的参数,默认为menu\\u order,然后是post\\u title。如果您快速编辑页面,则可以设置每个页面的顺序。

SO网友:Ryan Gibbons

如果这是一个菜单,我建议你看看Wordpress 3.0中新的导航菜单系统。您可以从任何一组页面、帖子甚至外部链接创建菜单。

你可以在外观的管理部分找到它→ 菜单

这里是codex page about the SubPanelcodex function reference

结束

相关推荐