对于每个网站项目,我都为客户端定制wordpress管理。现在,我希望客户端只能添加子页面。
我在网站上有一个主导航。我希望主导航是固定的,因此客户端不能向导航添加页面。但是客户端可以在固定主导航中向当前页面添加子页面。
我在谷歌上搜索了一下,但找不到解决方案。我知道我可以在特定id上显示菜单项。这样我可以固定主导航。
示例:
<?php wp_list_pages(\'include=7,13,26,35&title_li=<h2>\' . __(\'Pages\') . \'</h2>\' ); ?>
但是,它是否显示页面id下方的子页面id?难道没有更干净的方法吗?因为有了这个解决方案,客户端仍然可以创建页面。我只在首页上隐藏创建的页面。
希望有人能帮助我。
非常感谢,
最合适的回答,由SO网友:Tom J Nowell 整理而成
wp_list_pages
简单列出页面。它不是菜单,也不使用导航菜单API。对于所需内容,您需要执行多个查询以查找这些页面ID的子页面,因此在您的示例中,需要执行4个查询,并且需要执行4个wp\\U list\\U pages调用,以及一个手动查询以获取顶级页面。这不会很快,而且是浪费、笨拙和坏主意。
所以你应该使用wp_nav_menu
. 使用标准的导航菜单,如果你的客户修改了这个菜单,那么就向他们收取费用,让他们把它放回原处(他们得到了警告,这是正确的服务,但这是他们的网站,他们为此付费,所以他们为什么不能?)。
使用标准导航菜单,您可以添加非页面项、重新排列项,子菜单项不必遵循页面结构。