作为wp_list_pages项目的子项发布

时间:2012-10-23 08:18:09

标签: wordpress wordpress-theming

我有一个看起来像这样的垂直菜单

HOME
NEWS
ANOTHER PAGE
- SUB PAGE
- SUB PAGE

通过wp_list_pages检索它。 NEWS被设置为WP后端的帖子页面。

我想要实现的是将3个最新帖子的标题显示为NEWS的子菜单,如下所示:

HOME
NEWS
- POST 3
- POST 2
- POST 1
ANOTHER PAGE
- SUB PAGE
- SUB PAGE

是否有某种add_filter / function甚至插件来实现这一目标?

1 个答案:

答案 0 :(得分:1)

问题看起来好像是在尝试将页面对象用作相应帖子的“shell”。这可能是Wordpress Developer在开发自己的主题或使用现有代码时会发现自己的第一个陷阱。

简而言之,如果您还尝试列出Post Objects,则不应使用wp_list_pages。它变得混乱,你基本上绕开了Wordpress提供的现有方法来完成你所需要的。

您要做的是查看内置Navigation Menus以构建更灵活的菜单。如果您正在使用下载的主题,那么几乎肯定会支持它。否则,您需要查看Registering a Navigation Menu以使您的主题“菜单感知”。

这将使您能够做的是构建一个灵活的菜单,不仅支持页面,还支持直观UI中的类别和单个帖子。我建议完全删除名为“新闻”的页面对象,而不是按照您喜欢的顺序将新闻类别放在菜单旁边的所有页面对象中。

至于在导航菜单中查询最近的三个帖子作为子菜单,这对纯代码来说会更复杂一些。

我建议首先考虑这个选项。构建一个工作 - 尽管是静态 - 原型,以了解菜单界面。如果您正在编写自己的主题,请将您的wp_list_pages调用全部替换为wp_nav_menu

一旦你开始工作,请打开一个新问题,看看如何编写自己的Nav Menu Walker,让所有内容都按照你想要的方式显示。

通过采用这种方法,您将确保您的主题始终能够自动执行您的操作,而不必每隔一段时间就进行修补。

如果有帮助,请告诉我。