このサイトについて
TOPICS
概要
このサイトは、WordPressのREST API Handbookを勝手に翻訳した内容がメインになります。
途中、自分に馴染みのないコンテンツのページはすっ飛ばしたり、リファレンスのページ(投稿、固定ページ、カテゴリーなど)は、訳さなくてもいいかな…となったので、すっ飛ばしてあります。
翻訳の訂正などありましたら、お問い合わせページからご連絡いただけると幸いです。
※ただし、趣味でやっているので、余裕のあるときにしか対応できないです。
ちなみに、翻訳して内容を読みながら思いますが、WP REST APIを使う時点で、WordPress中級者であり、上級者向けの内容も含まれているので、需要があるかどうかはアクセス解析をするまで不明です。
普段、webサイトを作るときはWordPress、ちょっとした機能つきのサイトを作るときもWordPress、凝ったシステムを作るときはLaravelという棲み分けでしたが、WP REST APIを使いこなせれば、凝ったシステムも作れるかもしれないですね。
WordPressの良さといえば、やはりCreate(登録)、Read(参照)、Update(更新)、Delete(削除)をいちいち自分で書かなくていいというのがあるので、そこが最大限に発揮できるなら、システムにも使えそうです。
筆者(訳者)について
田舎のweb制作会社で働いている、しがないエンジニアです。
現在、産休中なので、PV数を稼げるサイトを作っておきたいなと思い、試しに立ち上げてみました。
メインでは、吹奏楽コントラバス初心者に向けてというサイトを運営しています。
「コントラバス 初心者」のキーワードで1位あたりを取っていますが、なんせ母数が少ないので、広告収入は微々たるものです。
ぶっちゃけ会社の給料だけだと少ないので、もうちょっと広告費稼ぎたいよねという、よこしまな気持ちがあるような気もしますが、まぁ生きるためなので許してください。
QiitaのWP REST API関連の記事
翻訳方法について
最初は、丁寧に単語だけGoogle翻訳に突っ込んで、自分で頑張って翻訳していましたが、途中で疲れて、全文Goolge翻訳に突っ込み始めていました。
ある日、Twitterで、DeepLという翻訳サイトを見つけました。結構、自然な日本語に訳してくれるので、これに英語を突っ込んで翻訳することにしました。
というわけで、あんまり自力で翻訳していません…
DeepLという翻訳サイトは非常に優秀で、文脈を読み取って翻訳してくれます。
以下の文章を例に説明します。
We want to make sure that our routes are unique. For instance we could have a route for books like this: /books
.
We want to make sure that our routes are unique. だけ翻訳すると、「路線を個性的なものにしたいと思います。」となります。
全文を翻訳すると、「私たちは、ルートをユニークなものにしたいと考えています。例えば、以下のような本のルートを設定することができます。/books.」となります。
文脈を読み取って、その中で一番合うものに自然と翻訳してくれるんですね。
サイトのテーマ
このサイトは、REST API Handbookのデザインを真似してテーマファイルを作成したものを使用しています。
WordPressのテーマの販売もしていますので、wiki、リファレンスのサイトを作成したい方は、ぜひ購入してみてください!
テーマの説明はこちら
翻訳して知った便利機能
とりあえずどんなレスポンスか見てみたい
このサイトでは、公式が用意してくれているAPIを試すことができます。
あくまで認証が必要ない投稿の取得などになりますが。
ターミナルを開いて、以下のコマンドを実行してみてください。
$ curl https://demo.wp-api.org/wp-json/
このサイトのAPIのエンドポイントの一覧などを取得することができます。
投稿一覧を取得するには、以下のコマンドを実行してください。
$ curl https://demo.wp-api.org/wp-json/wp/v2/posts/
投稿が10件取得できたと思います。
結果はjsonで返ってきますので、jsonのフォーマット用にjqコマンドをおすすめします。
jqコマンドをインストールして、取得した結果をパイプでつないで、jqコマンドでフォーマットすればOKです。
ちなみに、curlのオプションのメモです。
-X
HTTPメソッドの指定(GET, POSTなど)-i
HTTPヘッダーを出力に含める(これはjqコマンド使えません)-d(-data)
POSTリクエストとしてフォームを送信
返ってくる結果、こんなにいらないかも
投稿のAPIを叩くと、1投稿につき、かなりのデータがくっついてきますが、そんなときは、グローバルパラメーターの_fields
を使ってみてください。
たしかに、投稿のID、タイトル、リンクだけでOKです。というときもありますしね。