Magazine theme with related posts by tags

Hello,

I am using Source on a Ghost Pro Starter plan but I have a problem with this theme : the “related posts” section (here it is called “read more”) only displays the 4 latest posts, and I find it useless.

So I am looking for another theme with a magazine layout.

I’ve find Ruby but I want to be sure that ;

  • Ruby displays the related posts by tags.
  • It has all modern SEO stuffs.
  • The last update of this theme is not too old.

Another question : if I install Ruby over Source, can I keep all my former settings and code injection?

Thanks :slightly_smiling_face: :ok_hand:

I finally installed Ruby but the related posts are always the same 4 posts (but not the 4 last posts).

Is there something to do to fix it?

To my knowledge there are three official themes that work with internal tags and sort the posts according to relationship of such, while the other shows the latest posts.

I could not find that list right now but I believe Headline is one of those themes. Personally I wish Source and Ruby had been on that list since the two of them look amazing when scrolling on a phone.

1 Like

Yes, I have already forwarded my request to Ghost Support.

They told me that they would forward my request to the development team but that they couldn’t promise anything…

1 Like

Good good, maybe one day it will happen :) :)

1 Like

@Nathanael

Ruby DOES do related posts by tag, BUT if you have posts with a ton of common tags, or internal tags that have nothing to do with relatedness, it doesn’t work very well. Discussed at the blog post below.

On that page there’s some javascript that’d get you 70-90% of the way there (but you’d have to do the last 10-30%) - see option #2, here:

Yes, you could do it in code injection, but that’s the 70% end of the range, because you’d have to figure out the tags from somewhere else on the page first. (Everything that’s {{}} is pulling a value from handlebars…)

@Cathy_Sarisky

Thanks! So I have to modify those lines?

let taglist =[]
let threeposts = []
let postid = '{{id}}'
let nodupeslist=[]
let apistring = "PUT API URL HERE"
let apikey = "PUT CONTENT API KEY HERE"

You’ll also need a drawPosts function.

@Cathy_Sarisky What is a drawPosts function? :grin:

The code I linked gets the data for posts, but doesn’t actually insert them into the page HTML. That’s theme-specific - you’ll need to identify part of the page where the posts should go, and then append your content to it.

What’s needed is going to vary with theme.