在将页面添加到WordPress时,如何自动更新菜单

当使用WordPress 3.0发布导航菜单系统时,它是从博客平台转换为CMS的词性之一.

这意味着您可以添加您想要的任何内容到您的网站的导航菜单,包括自定义链接.拖放界面意味着任何人都可以在没有任何编码技能的情况下创建自己的自定义菜单.

但有时你不想依靠这个.如果您正在为将要添加页面的客户开发一个客户的网站,但不太可能更新导航菜单,或者在这样做时,或者没有技能,则可以提供自动导航菜单有用.

如果您想要的只是将顶级页面自动添加到菜单中,WordPress使菜单设置>自动添加页功能简单.

只是勾选自动添加页面复选框,然后单击"保存".然后,新的顶级页面将自动添加到您选择的菜单中.

Auto add pages to WordPress menu. 自动添加Wordpress菜单中的新顶级页面很容易.

如果,如果,您还希望将子菜单页面自动添加到菜单中,然后需要使用代码的一些小提琴.

在此帖子中,我将向您展示如何创建一个自动导航菜单,显示站点中的所有页面,在导航菜单中显示为第二级条目.

然后,您可以将此代码添加到主题中的页眉,或者如果您愿意,它将为您的用户链接提供在您的网站上添加新内容时自动更新的链接.

继续读取,或使用以下链接跳转:

  • 您需要自动化Wordpress导航菜单
  • 设置代码
  • 创建函数以列出所有页面的分层
  • 将函数添加到主题
  • 改善功能

您需要自动化WordPress导航菜单

与此帖子一起,您需要:

  • WordPress的开发或测试安装,添加了一些页面和子页面,而
  • 一个代码编辑器.

所有代码都在github上,所以如果你被困,你可以询问那个你应该做什么.

设置代码

我要将此代码添加到插件中,以便如果我将来应该更改我的主题,我仍然得到它.这样,我可以将函数从我的插件代码到我的主题中,以在正确的位置添加导航菜单或部分菜单.如果您的主题有钩子,您可以使用其中一个或多个添加代码.

如果您正在使用没有钩子的第三方主题,您必须将代码添加到主题.不要将此直接编码为主题:而是创建一个子主题并将代码添加到该主题上.只需从要编辑的父主题中重复主题模板文件,将其添加到您的子主题并编辑它.

第一步是创建插件.我正在为我的 wp-content/plugins 文件夹创建一个文件夹.创建文件夹意味着如果我需要,例如样式表或包括文件,我可以将来添加更多文件到插件.

首先,您需要将打开代码添加到您的插件,注释,告诉WordPress这是什么:

加载GIST 5D799DBD9F723A77FC6EA125B1C35318

现在激活您的插件.

接下来,如果您使用的是子主题,请设置上方.我正在使用二十七个主题的孩子-这是我的样式表:

加载GIST 43D6AD07772BBEB8824919888831831891.

一旦您完成此操作,如果您的网站未在其中包含一些页面,则添加一些.他们需要有一个多级结构.这是我的假页面:

Pages added to the WordPress admin

现在让我们开始将代码添加到插件中.

创建函数以列出所有页面的分层

我们将使用wp_list_pages()函数来获取所有页面并用链接列出它们.但首先,我们需要为此定义一些论点.首先创建函数并包括参数:

加载GIST 51FF327CD3394DC10F70F37046F5220E

参数非常简单-只有一个用于我们想要下降的页面级别.在2上设置此设置意味着将显示顶部级别页面和它们的子页面,但是没有任何降低.

现在让我们在参数后添加wp_list_pages()函数:

加载GIST CE9A5471C5940C4BA712233755C4CC8

这是全功能:

加载GIST CC2D95CF6D531F80587307C245602960

将函数添加到主题

现在,该功能在我网站上的任何地方都没有显示任何内容.要更改,我们需要从父主题中添加标题的副本,并编辑.

首先将标题文件重复为子主题并打开它.在二十十七个中,导航菜单的代码在模板-零件/导航/导航- top.php 中,这意味着我需要在孩子主题中的同一位置添加该文件的副本它从标题中正确调用 header.php 文件.在您的主题中,它可能是您必须复制的标题.文件本身.

取决于您的主题,菜单的代码将不同.二十十七,这是我需要替换的代码:

加载GIST 32F0895C18B9293B7B15E47F3D806015

编辑您的NAV菜单代码以添加新功能,其中包含else{}语句中的现有代码:

加载GIST 2C424BAA714B94BBFA0A6844A8DD840F

条件语句很重要:首先,它检查您添加到插件中的功能是否存在(即,如果已激活插件),如果是,则运行该功能.如果没有,它将导航菜单正常运行.

现在让我们看看我的网站:

the list of top level pages in the header,

链接正在出现,但有几个问题.我不希望它在顶部说'页面'(这是wp_list_pages()函数的默认值),我想更有效地订购页面.你会看到主页位于列表中间,这不是理想的.

改进功能

让我们回到插件代码并调整它以解决这些问题.

查找已为wp_list_pages()定义的参数:

加载GIST E48BC295F1A3DE12662FBED2F60E8E13.

并编辑:

加载GIST 52B5A8A12FC77A4447B6FA2C111BFEAC

这增加了两个额外的参数:

  • 在列表之前的标记,现在表示"菜单"而不是"页面".
  • 页面显示的顺序.

您需要返回页面的编辑屏幕,并为每个页面设置页单.为您的主页提供0的值,而另一个顶级页面值高于此.

现在当您查看菜单时,它将如下所示:

Top level pages in the header with the home page listed first

您还可以更改第二级页面的菜单顺序.这些将永远不会显示在顶层页面上方,因此您可以为每组子页面开始0或1.这是一个好主意,不要在随后制作这些数字,因此如果您愿意,您可以将来插入额外的页面.

Nested menu 嵌套菜单,显示第一和第二级页面.

自动化导航菜单可以节省工作并最小化错误

如果您的网站完全基于页面,则使用此技术将保存在创建新页面到菜单中添加新页面.如果您正在为客户开发一个网站,并且您不确定他们会有技能或编辑导航菜单的信心,那么它将未来证明该网站并最大限度地减少错误风险.您需要向客户展示如何设置新页面的菜单顺序,但您无需教导它们的菜单功能.

如果您不想在主导航菜单中使用它,您可以随时使用它或内容后使用它.以这种方式,您的网站访问者在阅读每个页面后,您可以在某个地方进行.

6

发表回复