如何在 drupal 7 中列出当前 parent 页面的所有 child 页面?

How to list all child pages of current parent page in drupal 7?

假设我有 parent 页 A1 和 B1。 A1 有 child 页 A1.1、A1.2、A1.3,B1 有 child 页 B1.1、B1.2。我想在 A1 和 B1 上列出所有相应的 child 页面。在每个 child 页面中,我都有一张图片和一个标题。这 2 条信息需要在 parent 页面上以预告片的形式列出。无论是通过编码还是通过使用视图,我都需要帮助来完成这项工作,只要能得到正确的结果,我并不介意。谢谢

您可以通过创建一个显示您需要的字段的视图或一个预告片来做到这一点。然后添加一个 "Content Nid" 上下文过滤器,在 "WHEN THE FILTER VALUE IS NOT AVAILABLE" select "Provide default value" 下的此过滤器的配置中,然后 "PHP Code" 然后我使用的代码如下

$children = array();
$current = db_query("select menu_name, mlid from {menu_links} where link_path = :node", array(':node' => $_GET['q']));
$current_info = array();
foreach ($current as $value) {
$current_info[] = $value;
}
if($current_info) {
$result = db_query("select mlid, plid, link_path, link_title from {menu_links}    where menu_name=:menu and plid=:mlid and hidden=0 order by weight, link_title", array(':menu' => $current_info[0]->menu_name, ':mlid' => $current_info[0]->mlid));
foreach ($result as $row) {
  $children[] = $row;
}
}
$nids = array();
foreach ($children as $value){
if( substr( $value->link_path, 0, 5 ) == 'node/' ){
  $nids[] = substr( $value->link_path, 5 );
}
}
return implode('+',$nids);

最后要做的,在页面底部"more"下select "Allow multiple values"

我正在使用 menu_tree_all_data()

https://api.drupal.org/api/drupal/includes!menu.inc/function/menu_tree_all_data/7

获取整个菜单结构然后我"manually"爬取菜单树...

同样在读完树后,我正在调用 menu_tree_add_active_path()

http://www.drupalcontrib.org/api/drupal/contributions!menu_block!menu_block.module/function/menu_tree_add_active_path/7

这将添加活动轨迹指示器。它是菜单块模块的一部分,因此您必须安装它并且不要忘记在模块中添加菜单块的依赖项...

  $tree = menu_tree_all_data($menu);
  menu_tree_add_active_path($tree);