How to get internal tag posts in Ghost - ghost-blog

I'm currently working on a Ghost blog, but I'm wondering how I might be able to grab all the posts that have a internal tag in Ghost.
I found
{{#get "tags" limit="all"}}
{{#foreach tags visibility="internal"}}
{{removeSubstring name '#META:'}}
{{/foreach}}
{{/get}}
this code but it only returns tag list not posts.
I want a internal tag posts list, Can anyone please help me ?

When you say internal tags do you mean Private Tags? If so then that's not really what private tags are for, you can filter with them though like so:
{{#get "posts" filter="tag:hash-tagname"}}
{{#foreach posts}}
{{title}}
{{/foreach}}
{{/get}}
To get all public tags use the following:
{{#get "tags" limit="all"}}
{{tags}}
{{/get}}
Hope this helps!

Related

Fetching all tags to make a navigation component, Ghost

I was creating a ghost blog and i created a custom component to display all the tags in the blog.
I used the below code to do so,
{{#get "tags" limit="all"}}
<ul class="tags">
{{#foreach tags}}
<li>
{{name}}
</li>
{{/foreach}}
</ul>
{{/get}}
I made the component to act as a filter. But I am facing some issues,
Tags with no posts are not displaying.
Also is there any way to know which tag filter is currently active?
can someone help me with what I am doing wrong.?
Thanks in advance.
I believe tags with no posts technically don't exist so they don't they don't create empty page routes, as all tags have their own tag page (/tag/example-tag/). As for knowing the active class I assume you're wanting to apply an active class to the tag link, which can be done with link_class:
<a class="tag {{link_class for=url class='tag-current'}}" href="{{url}}">{{name}}</a>

Ghost: Get URL of post in foreach loop

I'm looking to get the URL of a post accessed using a {{#foreach posts}}{{/foreach}} helper. The structure I am using right now is :
<div class="pfdflxbx">
{{#get "posts" limit="3" include="tags, authors" filter="featured:true"}}
{{#foreach posts limit="3"}}
{{title}}
{{/foreach}}
{{/get}}
</div>
When I insert a {{url}} helper between {{title}} and {{/foreach}}, the URL that gets returned to me is the url of the site's home page.
If I use the following structure:
<div class="pfdflxbx">
{{#get "posts" limit="3" include="tags, authors" filter="featured:true"}}
{{#foreach posts limit="3"}}
{{#post}}
{{title}}
{{/post}}
{{/foreach}}
{{/get}}
</div>
Nothing renders to the DOM, as in, no posts populate.
Could someone help shed some light on the correct practice here?
The first solution I posted was correct. There is a bug in the back end version I am working with which causes the URL of the blog posts to redirect to the welcome page.

Count for Member Posts in Ghost 3.x

Does anyone know how to get a total count for the number of posts that are for members.paid only in Ghost 3.x?
So far I have the following. But I cant seem to find the correct filter to only show the members.paid articles.
{{#get "posts" limit="all" }}
{{posts.length}}
{{/get}}
Thanks,
Solution posted over on the Ghost forum:
https://forum.ghost.org/t/get-total-count-of-member-paid-posts/12117
{{#get "posts" limit="all" filter="visibility:paid"}}
{{posts.length}}
{{/get}}

Ghost - how to get a specific page?

I'm a Ghost beginner, and I know I can get the list of pages doing like below.
{{#get "pages"}}
{{#foreach pages}}
{{{html}}}
{{/foreach}}
{{/get}}
But am I able to fetch a specific page? Let's assume that I have an "about" page that I'd like to fetch in order to show its contents into the blog's sidebar, for example, this is what I tried, but it's not working.
{{#get "pages/slug/about" as page}}
{{page}} // prints undefined
{{/get}}
Any help would be much appreciated.
The first parameter passed to the #get helper specifies the name of the resource you want to query. It should be either posts, tags or authors. In your use case it should be posts.
{{#get "posts" slug="pages/slug/about" as |post|}}
{{#post}}
<h1>{{title}}</h1>
<div class="post-content"> {{content}} </div>
{{/post}}
{{/get}}

How do you loop through static pages [If they exist]

I made a navigational bar at the left side of my blog and I wanted to add the list of pages that the user created into that navigational element. The problem is that I do not know how to loop through static pages. When looping through normal posts all users approach this method:
{{#foreach posts}}
....
....
....
{{/foreach}}
The above code is to loop through each post that exists and then the user has the choice to put whatever they want inside that piece of code. The problem is now looping through each static page.
Can anyone show me how to loop through static pages?
At this time, it is currently not possible to loop through static pages :(
That will prob come out when Apps do (aka someone will make an app for it)
I was searching for just this today and found a solution on this Github issue
{{#get "posts" filter="featured:true+page:true"}}
{{#foreach posts}}
... do something with all featured pages...
{{/foreach}}
{{/get}}
I just verified this locally.

Resources