> I can code a little but I'm not very good so I'm having trouble > finding an approach to implement this. I started 7 years ago from zero. I only knew HTML and CSS. I learned and mastered Rules & Views. But like 4 years ago, I ran into scenarios like this one where the existing modules didn't quite do what I needed or felt I had to do overkill/bulky-overhead workarounds. So I learned PHP from free online sources and I learned how to create custom modules in Drupal. I highly suggest you improve your backend/coding game. Specially since Rules in D8 is barebones compared to D7. > I tried to build this in Views. The problem I encountered was that it > is very difficult to iterate through the subdivision entity reference > field and filter out the previous and next links. While it's possible to **programmatically** solve it with Views, it feels over-kill/unnecessary to do this in Views just for prev and next links. A better approach is to create `prev_url` and `next_url` variables for Twig. Using a preprocess function we can create and pass those variables to the appropriate template file, node.html.twig in this case. In **mytheme.theme** /** * Implements hook_preprocess_HOOK() for node.html.twig. */ function mytheme_preprocess_node(&$variables) { $node = $variables['elements']['#node']; // obtain current page node object if ($node->getType() == 'page') { // check it's a "page" content type $page_nid = $node->id(); // get the current page node id // get Chapter nid using Entity Field Query $query = \Drupal::entityQuery('node') ->condition('type', 'chapter') ->condition('field_reference', $page_nid); // check if current page NID is set on any Chapter's reference field $chapter_nids = $query->execute(); // returns array of Chapter nids if (!empty($chapter_nids)) { // check we have a result $chapter_nid = reset($chapter_nids); // Extracts the first array value, since we assume current page can only belong to one Chapter. $chapter_node = Drupal\node\Entity\Node::load($chapter_nid); // load chapter node $referenced_page_nodes = $chapter_node->field_reference; // get referenced nodes foreach ($referenced_page_nodes as $key => $referenced_item) { // loop though referenced nodes if ($referenced_item->entity) { if ($node->id() == $referenced_item->entity->id()) { // check if current page nid equals referenced nid $prev_key = $key - 1; // we'll use these keys to access prev/next values $next_key = $key + 1; if (!empty($referenced_page_nodes[$prev_key])) { // check if previous key exists $prev_url = $referenced_page_nodes[$prev_key]->entity->toUrl()->toString(); // get prev URL $variables['prev_url'] = $prev_url; // creates prev_url variable in node.html.twig } if (!empty($referenced_page_nodes[$next_key])) { // check if next key exists $next_url = $referenced_page_nodes[$next_key]->entity->toUrl()->toString(); // get next URL $variables['next_url'] = $next_url; // creates next_url variable in node.html.twig } break; // since we found it, exit from loop as no point in continuing to loop through. } } } } } } <sub>**Note:** Rename `field_reference` (2 places) to the machine name of your actual reference field in Chapter content type.</sub> In **node.html.twig**, you can place them after the `{{ content }}` part {% if prev_url is not empty %} <span><a href="{{ prev_url }}">{{ 'Previous page'|t }}</a></span> {% endif %} {% if next_url is not empty %} <span><a href="{{ next_url }}">{{ 'Next page'|t }}</a></span> {% endif %}