2016-04-06 12 views
0

Möchten Sie Suchformular in Ghost cms implementieren. Besucher/Benutzer müssen in Post, Autor und Tags suchen können. Wenn möglich, einige REST-APIs, die in Ghost-Db abfragen und das Ergebnis zurückgeben, wie es andere öffentliche Ghost-Apis tun. z.B. Unter api werden alle Beiträge einschließlich Tags und Autor abgerufen.So erstellen Sie benutzerdefinierte Ghost API für die Suche

Also, ich möchte etwas wie das, wo ich eine Zeichenfolge übergeben und alle übereinstimmenden Daten aus db bekommen kann.

Antwort

0

Ich habe es mit js gelöst. Eigentlich habe ich keine gute Lösung gefunden und ich stellte dem Ghost-Team Fragen zu ihrer slack-Gruppe. Sie schlugen mir vor, dies mit js zu lösen. Also das ist, was ich tat:

Api Anruf

$.get(
ghost.url.api('posts', { include: 'tags, author' })) 
.done(function(data) { 
    localStorage.setItem('posts', JSON.stringify(data)); 
}) 
.fail(function(err) { 
    console.log(err); 
}); 

alle Daten gespeichert localStorage

localStorage.setItem('posts', JSON.stringify(data)); 

als Benutzer etwas in ein Suchformular eingegeben haben, Ich ergreife diese Suchzeichenfolge und fi Füge die Daten hinzu, die dieser Zeichenfolge entsprechen.

// get search results 
function getSearchResult(string) { 
    var postData = JSON.parse(localStorage.getItem('posts')); 
    var searchResults = postData.posts.filter(function(post) { 
    return post.markdown.match(string) 
     || post.title.match(string) 
     || post.author.name.match(string); 
    }); 

    renderSearchResults(searchResults); 
} 

dann machen Ergebnis accordinging

function renderSearchResults(posts) { 
    // my render code 
}