Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
64 lines (62 sloc)
1.85 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const _ = require('lodash'); | |
| const Promise = require('bluebird'); | |
| const path = require('path'); | |
| const slash = require('slash'); | |
| // Implement the Gatsby API “createPages”. This is | |
| // called after the Gatsby bootstrap is finished so you have | |
| // access to any information necessary to programmatically | |
| // create pages. | |
| // Will create pages for Wordpress pages (route : /{slug}) | |
| // Will create pages for Wordpress posts (route : /post/{slug}) | |
| exports.createPages = ({ | |
| graphql, | |
| actions, | |
| }) => { | |
| const { | |
| createPage, | |
| } = actions; | |
| return new Promise((resolve, reject) => { | |
| // The “graphql” function allows us to run arbitrary | |
| // queries against the local Wordpress graphql schema. Think of | |
| // it like the site has a built-in database constructed | |
| // from the fetched data that you can run queries against. | |
| // ==== POSTS (WORDPRESS NATIVE AND ACF) ==== | |
| graphql( | |
| ` | |
| { | |
| allWordpressPost { | |
| edges { | |
| node { | |
| id | |
| slug | |
| status | |
| template | |
| format | |
| } | |
| } | |
| } | |
| } | |
| `, | |
| ).then((result) => { | |
| if (result.errors) { | |
| console.log(result.errors); | |
| reject(result.errors); | |
| } | |
| const postTemplate = path.resolve('./src/templates/post.js'); | |
| // We want to create a detailed page for each | |
| // post node. We'll just use the Wordpress Slug for the slug. | |
| // The Post ID is prefixed with 'POST_' | |
| _.each(result.data.allWordpressPost.edges, (edge) => { | |
| createPage({ | |
| path: `/blog/${edge.node.slug}`, | |
| component: slash(postTemplate), | |
| context: { | |
| id: edge.node.id, | |
| }, | |
| }); | |
| }); | |
| resolve(); | |
| }); | |
| // ==== END POSTS ==== | |
| }); | |
| }; |