package main import ( "encoding/json" "log" "net/http" ) var menuURL = "http://www.thomaspol.com/wp-json/wp/v2/menu" type MenuItem struct { Title string `json:"title"` URL string `json:"url"` } func _getMenuItems() func() []MenuItem { var items []MenuItem return func() []MenuItem { if items == nil { res, err := http.DefaultClient.Get(menuURL) if err != nil { log.Printf("[Err] Error getting menu: %v", err) return items } dec := json.NewDecoder(res.Body) tmpItems := []MenuItem{} if err := dec.Decode(&tmpItems); err != nil { return items } items_ := []MenuItem{} for _, item := range tmpItems { if item.URL == "#" { continue } items_ = append(items_, item) } items = items_ } return items } } var getMenuItems = _getMenuItems()