2015-05-21 15 views
6

Attualmente sto lavorando su un blog Ghost (Ghost è un "successore" di Wordpress basato su Node.js e altri vari pacchetti/librerie su quella piattaforma), ma mi chiedo come potrei essere in grado di afferrare tutto i post che hanno un determinato tag in Ghost/Handlebars.js.Come trovare tutti i post con un tag specifico in Ghost e scorrere su di essi?

Il problema è che i contesti di Ghost sono solitamente incapsulati al punto che non riesco a estrarre dall'API un elenco di tutti i messaggi che portano un determinato tag; è apparentemente possibile solo iterare attraverso i post di index.hbs, e altre soluzioni sono un po 'hacker-y o coinvolgono più uso di jQuery.

Come potrei essere in grado di ottenere una lista o una matrice di tutti i messaggi in Ghost in modo che possa filtrarli per tag e quindi scorrere su di essi? Ho anche provato uno {{#foreach posts}} e {{#has tag='WHATEVER'}} ma questo metodo non sembra funzionare immediatamente. Come novizio di Ghost e Handlebars, non sono sicuro di cosa fare.

risposta

10

Nel caso in cui qualcuno si imbatta ancora in questo, questo è ora possibile. Ecco come si può fare attraverso il get aiutante:

{{#get "posts" filter="tags:tagname"}} 
    {{#foreach posts}} 
     <p>{{title}}</p> 
    {{/foreach}} 
{{/get}} 

{{#get "posts" filter="tags:[tag1, tag2]"}} 
    {{#foreach posts}} 
     <p>{{title}}</p> 
    {{/foreach}} 
{{/get}} 
+1

tag: [tag1, tag2] che significa posti con tag1 e/o tag2 ... come fare questo con la possibilità di filtrare i messaggi che devono avere entrambi? – dimitrieh

6

Nota: questa risposta era corretta al momento della stesura. L'helper {{#get}} è stato aggiunto nel novembre 2015 ed è disponibile per impostazione predefinita da Ghost 1.0 (agosto 2017). È documentato qui: https://themes.ghost.org/docs/get

La risposta di David dovrebbe essere la risposta accettata.


L'elenco di tutti i tag non è attualmente possibile, come spiegato nello theme documentation FAQ. Questo fa anche riferimento alla funzione get helper sulla roadmap che renderà possibile in futuro.

Una possibilità un po 'hacky con la versione corrente di Ghost è di utilizzare JavaScript per recuperare le pagine del feed RSS e scorrere in ogni pagina afferrando i tag da ogni post. Questo funzionerà, ma vale la pena tenere presente che l'impaginazione del feed RSS scompare in una versione futura (dopo che l'API diventa completamente disponibile, quindi ci sarà un percorso di migrazione).

Una volta rilasciato l'helper get, questo diventa un helper diretto: {{#get 'tags'}}...do things with tags here...{{/get}}. Questa funzione è in fase di sviluppo attivo.

Problemi correlati