0

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

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 甚至插件来实现这一点?

4

1 回答 1

1

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

简而言之,如果您还尝试列出 Post 对象,则不应使用 wp_list_pages。它变得一团糟,而且您实际上是在规避 Wordpress 提供的现有方法来完全满足您的需求。

您要做的是查看内置导航菜单以构建更灵活的菜单。如果您使用的是下载的主题,那么几乎可以肯定它会受到支持。否则,您需要查看注册导航菜单以使您的主题“感知菜单”。

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

至于以子菜单的形式查询导航菜单中最近的三个帖子,这对于纯代码来说会稍微复杂一些。

我的建议是先研究这个选项。构建一个工作的——尽管是静态的——原型来感受菜单界面。如果您正在编写自己的主题,请将您的 wp_list_pages 调用完全替换为wp_nav_menu

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

通过采用这种方法,您将确保您的主题始终按照您的意愿自动运行,而不必经常进行修补。

让我知道这是否有帮助。

于 2012-10-23T13:36:34.807 回答