Native linking to previous and next post or page using CMS

Nice idea Sabanna! i will use this until than!

Any updates on this? This would be awesome to have, if not possible already? The workaround of @sabanna is nice, but will be a real pain with a lot of articles. I’m currently working on a support kind of site with a lot of courses/trainings, which they want to present in a course-kind of way with Next/Previous training buttons.

4 Likes

Happy to like this too. It could be similar inbuilt feature like the “previous slide” / “next slide” is.

2 Likes

+1 Would love to have this feature.

1 Like

+1 paging for the CMS would be awesome

1 Like

Actually there is a slightly simpler way to make next or previous actions then sabanna suggests.
In my case I reused the reference field linking to itself, creating kind of a loop.

  1. First you need to create a reference field in the same collection. Name it Next.
  2. Link the reference to it self.

  1. Save the collection.
  2. Go to the Editor and create a button, name it “Next”. In the Link settings make sure to click on the “A collection detail page” and to pick from the dropdown “references > next”.

  1. Go back to collections and in the items list and pick one item.
  2. In the “Next” field select the item that should appear next as the “Next” button triggered. (Repeat for each item)

Same way can be created previous button.

19 Likes

Great idea!!! :clap: And so simple!

I was about to suggest the same thing! Thanks! :thumbsup:

1 Like

This worked perfectly for me.

I added two toggles to my collection, one “First” and one “Last” that I turn on if the lesson (my site is an online course) is the first or last in the unit.

This allows me to show or hide the Previous and Next buttons when appropriate. Maybe that’ll help someone else, too!

Guys, i know its holiday time… and your working on great stuff… but please when that is finished do some small projects like this kind of things it would make the community love your more!:relaxed:

2 Likes

Any updates? :slight_smile:

1 Like

It might be worth noting that I had to refresh after adding the “next” reference field to the collection before I was able to link it from my template. Just throwing that out there in case anyone else runs into this same issue :slight_smile: I thought it wasn’t working at first.

1 Like

When will this feature be available? @thesergie

1 Like

I solved this issue without manually assigning anything in the CMS. If the post order is changed or if posts are deleted, the buttons update automatically. A working version of this can be found here: http://www.hammerhouse.io/post/jonathanroy

How it works:
-A dynamic list containing your posts is added to the post template page.
-Webflow automatically adds the class ‘w–current’ to the current post.
-jQuery searches the dynamic list for that class and the posts that come before and after it.
-jQuery updates your next / previous button anchor tags.


Step A - Add the the post list:

  1. At the bottom of the post template page, add a Dynamic List containing all posts
  2. Assign the ID ‘post_list’




Step B - Add dynamic links:
3) Add a Text Link element inside the Dynamic Item
4) Set the link to Current Post
5) Set the text to the post’s Name field




Step C - Add ID’s to buttons:
6) Add ID ‘previous_button’ to previous post button
7) Add ID ‘next_button’ to next post button




Step D - Paste the code:
8) In the post template page settings, add the following code inside the head tag section:
-CSS is included to hide the post list on the published page


Code:
<style>#post_list{display: none;}</style>

<script>
  var Webflow = Webflow || [];
  Webflow.push(function () { 
    
    var next_href = $('#post_list .w--current').parent().next().find('a').attr('href');
    var previous_href = $('#post_list .w--current').parent().prev().find('a').attr('href');
    
    //if last post in list
    if(next_href == undefined) {
      next_href = $('#post_list').children().children().first().find('a').attr('href');
      $('#next_button').fadeOut(); //optional - remove if you want to loop to beginning
    }
    
    //if first post in list
    if(previous_href == undefined) {
      previous_href = $('#post_list').children().children().last().find('a').attr('href');
      $('#previous_button').fadeOut();  //optional - remove if you want to loop to end
    }
    
    //apply hrefs to next / previous buttons
    $('#next_button').attr('href', next_href);
    $('#previous_button').attr('href', previous_href);
    
  });
</script>
30 Likes

Edit: This topic rebounds here (04/2018): Native linking to previous and next post with titles using CMS

This is brilliant, thanks. And without any custom code!

Note:
If you put links to next and previous. Use a relative path like /albums/pallets-and-knives.
Otherwise, once you publish live this will redirect to the web flow domain.

Hi @hammerhouse I followed the steps and tried implementing this code as-is but my previous & next buttons don’t appear to show up? I’m using normal buttons with class name “group” as in your screenshots and applied the previous_button/next_button id’s. Let me know if there’s something I’m missing or if this script has changed at all? Thanks!

No need to setup and fiddle with a collection list with my new method. Just design the links.

1 Like