Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@mi-bear

WordPressAPIをGoで操作したくてたまらない

More than 3 years have passed since last update.

最近のキーワードが、公私混同した場合、WordPress Goなので、このようなお話を。
まだ色々と途中なので、記事の尻切れ感も半端ないです。

WordPressで行うこと

https://wordpress.org/plugins/rest-api/
コレを導入するのみです。

http://v2.wp-api.org/reference/
ドキュメントは、読んで理解しておく。

Goで行うこと

APIのドキュメントが割りと揃っていたのでそのまま利用しても良かったのですが、go-wordpressというパッケージがあったので、利用してみました。

こういうのを色々と読むのは、修行中の身としては大変ありがたい経験です。
必要に迫られてやるので、ただボーッと眺めているよりは身になるようです。

お試しのインポートはこんな感じ。

sample.go
package main

import (
    "fmt"
    "net/http"
    "os"

    wordpress "github.com/sogko/go-wordpress"
)

環境変数でいくつか持っている値を定義しておきます。

sample.go
type WpEnv struct {
    WordPressBaseURL  string
    WordPressUser     string
    WordPressPassword string
}

var (
    GetWpEnv = func() *WpEnv {
        return &WpEnv{
            WordPressBaseURL:  os.Getenv("WORDPRESS_API_BASE_URL"),,
            WordPressUser:     os.Getenv("WORDPRESS_USER"),
            WordPressPassword: os.Getenv("WORDPRESS_PASSWORD"),
        }
    }
)

Clientの取得。

sample.go
func getClient() *wordpress.Client {

    client := wordpress.NewClient(&wordpress.Options{
        BaseAPIURL: GetWpEnv().WordPressBaseURL,
        Username:   GetWpEnv().WordPressUser,
        Password:   GetWpEnv().WordPressPassword,
    })

    return client
}

Taxonomyを取得してみる。

sample.go
func main() {

    wpc := getClient()
    terms, resp, body, err := wpc.Taxonomies().List(nil)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    if body == nil {
        fmt.Println("body nil")
        return
    }
    if resp.StatusCode != http.StatusOK {
        fmt.Println(resp.Status)
        return
    }
    if terms == nil {
        fmt.Println("terms nil")
        return
    }

    fmt.Println(body)
    fmt.Println(resp)
    fmt.Println(terms)
}

ということで接続もできてどうとでもなることが分かった!ので、記事を取得して色々できるようです。

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mi-bear
かなりの老熊がボケ防止のために自分自身の健忘録に使うクマ。https://github.com/mi-bear に何かを上げたりするかもしれません。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?