package wp import ( "fmt" "github.com/fthvgb1/wp-go/app/pkg/cache" "github.com/fthvgb1/wp-go/app/wpconfig" "github.com/fthvgb1/wp-go/helper/slice" str "github.com/fthvgb1/wp-go/helper/strings" "strings" ) var iconSizes = []string{"site_icon-270", "site_icon-32", "site_icon-192", "site_icon-180"} func CalSiteIcon(h *Handle) (r string) { id := str.ToInteger[uint64](wpconfig.GetOption("site_icon"), 0) if id < 1 { return } icon, err := cache.GetPostById(h.C, id) if err != nil || icon.AttachmentMetadata.File == "" { return } m := strings.Join(strings.Split(icon.AttachmentMetadata.File, "/")[:2], "/") size := slice.FilterAndMap(iconSizes, func(t string) (string, bool) { s, ok := icon.AttachmentMetadata.Sizes[t] if !ok { return "", false } switch t { case "site_icon-270": return fmt.Sprintf(``, m, s.File), true case "site_icon-180": return fmt.Sprintf(``, m, s.File), true default: ss := strings.Replace(t, "site_icon-", "", 1) return fmt.Sprintf(``, m, s.File, ss, ss), true } }) r = strings.Join(size, "\n") return }