是的。
我确信有一个模块可以做类似的事情,但您也可以创建自己的模块。
有两种方法可以解决这个问题。
您可以使用hook_menu()查询所需的项目并返回正确的菜单结构。您还需要确保使用hook_nodeapi()在节点保存上重建菜单缓存。 请参阅下面 henricks 的评论,了解为什么这是一个坏主意
或者,您可以使用 hook_nodeapi() 通过menu_link_save()添加自定义菜单项。
编辑
hook_menu 应该返回一个菜单项数组,通常这些都是静态的,但是动态生成这些数组没有任何问题。
因此,您可以查询节点表以获取所需的节点列表,循环遍历这些项目并动态创建一个包含正确菜单项的数组。
非常粗略地:
function example_menu() {
$result = db_query('select * from node where ...'); // put in your own select items and where clause
$menu = array();
while ($row = db_fetch_object($result)) {
$menu['my_path/' . $row->nid;] = array(
// See hook menu docs for what to put here.
);
}
return $menu;
}
Run Code Online (Sandbox Code Playgroud)