背景
WordPress で 10 年以上運用しているブログをどうにかしたいと思い始める。
- パーマリンクを変えたくない
- WordPress つらくなってきている
v5.0.0 の標準エディタGutenbergの具合がよろしくない - フロント実装(WordPress テーマ)を Vue.js で構築している
移行先もスムーズに Vue.js が使えると良い - 完全に静的化する(Hugo など)すると記事データの管理が面倒そう
上記を踏まえて、記事管理のために CMS(WordPress)は残しつつ、移行の手間を掛けずに手軽に試せそうなGridsomeを試してみる。
Gridsome を使ってみる
React 製のGatsbyJSライクな Vue.js 製のGridsomeを使ってみる。
インストール
公式のドキュメントに沿って入れていく。
使用モジュールのバージョン:
@gridsome/source-wordpress: v0.1.1gridsome: v0.4.0
まずは「グローバルにインストールしろ」というのでひとまずインストールする。
npm install --global @gridsome/cliデータソースを WordPress にしたい。@gridsome/source-wordpressが用意されているが、同梱されているみたいですので、下記を実行するだけで良い。
gridsome create my-gridsome-project wordpressgridsome createが完了すると、下記のようなファイルが展開される。
.
├── src
├── gridsome.config.js
├── node_modules
├── package.json
└── README.md
gridsome.config.js
まずは取得先の情報を設定する。
module.exports = {
plugins: [
{
use: '@gridsome/source-wordpress',
options: {
baseUrl: 'YOUR_WEBSITE_URL', // required
typeName: 'WordPress', // GraphQL schema name (Optional)
perPage: 100, // How many posts to load from server per request (Optional)
concurrent: 10, // How many requests to run simultaneously (Optional)
routes: {
post: '/:year/:month/:day/:slug', //adds route for "post" post type (Optional)
post_tag: '/tag/:slug', // adds route for "post_tag" post type (Optional)
},
},
},
],
};plugins.options.baseUrlの値を対象の WordPress の URL に書き換えてみる。もし、対象がない場合は、demo 用のhttps://demo.wp-api.org/を指定しても良さそう。
実行
npm run develop // or build Site running at: http://localhost:8080/
Explore GraphQL data at: http://localhost:8080/___explorehttp://localhost:8080/にアクセスすると Gridsome で構築したページが見られるようになる。
ライブリロードされるので、そのまま Vue SFC を修正して開発に取り掛かることができる。
http://localhost:8080/___exploreの方は、GraphQL のクエリをテストしたいときに使えるプレイグラウンドへアクセスできる。
プロジェクト内で使用可能な GraphQL コレクションの一覧も見ることができる。