-
Notifications
You must be signed in to change notification settings - Fork 10.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[gatsby-source-wordpress] Treat wp settings as a known type for inclusion #5708
[gatsby-source-wordpress] Treat wp settings as a known type for inclusion #5708
Conversation
Signed-off-by: Adam Mould <adamwmould@gmail.com>
Hey guys, An initial go at including WP Settings fields as GraphQL types using the gatsby-source-wordpress plugin. It feels more of a workaround, and I'm open to other suggestions on better ways of approaching this, I just wanted to get some working code into review 👍 |
Deploy preview for using-drupal ready! Built with commit c7b876b |
Alternative solution would be to to treat settings entity as known? so change https://github.com/Adam-Mould/gatsby/blob/66049b91490441145e4a4c4aad7d16f79a390e6b/packages/gatsby-source-wordpress/src/normalize.js#L152 to not filter it out? |
Deploy preview for gatsbygram ready! Built with commit c7b876b |
Hey @pieh, that was my first thought as well, but unfortunately when It was then throwing the error - |
Is this the only place that cause errors? Given that we are already filtering out unknown entities we could change node id generation to not use wordpress_id if it doesn't exists? |
Signed-off-by: Adam Mould <adamwmould@gmail.com>
I've just push a commit with that solution in place. Feels much nicer to me. Can you take a look at let me know your thoughts please? |
@@ -138,11 +138,15 @@ exports.liftRenderedField = entities => | |||
|
|||
// Exclude entities of unknown shape |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add some context to function description comment so it's easier for future contributors? That we assume that all entities need ids except for whitelisted types (currently just settings)
|
||
exports.createGatsbyIds = (createNodeId, entities) => | ||
entities.map(e => { | ||
e.id = createNodeId(`${e.__type}-${e.wordpress_id.toString()}`) | ||
if (e.wordpress_id) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here would be good idea to put comment mentioning excludeUnknownEntities
and why we have to ways of creating node id
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code wise, it's good - just some code comments fine tuning and this will be ready to go in!
Awesome, I'll get these code comments added this evening :) |
Signed-off-by: Adam Mould <adamwmould@gmail.com>
Thanks! |
* master: (219 commits) Revert "Add rawMarkdownBody to node.internal" (#5769) Publish Change code highlights to the correct lines (#5765) Update sitemap example to include posts and exclude sample page (#5723) [gatsby-transformer-remark] add rawMarkdownBody (#5557) [gatsby-image] add placeholderStyle prop (#5745) [gatsby-plugin-sharp] toFormat fix and unify defaultArgs handling (#5071) [gatsby-source-wordpress] Do not assume entities will exist (#5004) [gatsby-transformer-excel] add option to disable raw output (#5746) Update gatsby-config.js (#5744) Publish [gatsby-source-mongodb] Use Promises to prevent calling done too early (#5738) clues about this being advanced [gatsby-source-wordpress] Treat wp settings as a known type for inclusion (#5708) [www] Add dot com to main navigation (#5579) Publish fixed TOC links, shortened TOC, localhost edits Introduction to Gatsby blog post (#5628) Update gatsby-config.js (#5688) Add envinfo to gatsby-cli, issue template (#5594) ... # Conflicts: # .github/ISSUE_TEMPLATE/bug_report.md # .github/ISSUE_TEMPLATE/question.md # README.md # docs/blog/author.yaml # docs/docs/adding-search.md # docs/docs/gatsby-starters.md # docs/docs/how-to-contribute.md # docs/docs/image-tutorial.md # docs/docs/source-plugin-tutorial.md # docs/docs/wordpress-source-plugin-tutorial.md # docs/docs/working-with-images.md # docs/tutorial/part-two/index.md # examples/image-processing/src/pages/index.js # examples/sitemap/gatsby-node.js # examples/sitemap/src/pages/index.js # examples/sitemap/src/pages/page-2.js # examples/sitemap/src/pages/secret.js # examples/using-asciidoc/.eslintrc # examples/using-contentful/.eslintrc # examples/using-contentful/.eslintrc.json # examples/using-css-modules/.eslintrc # examples/using-css-modules/.eslintrc.json # examples/using-csv/.eslintrc # examples/using-csv/.eslintrc.json # examples/using-drupal/.eslintrc # examples/using-drupal/.eslintrc.json # examples/using-emotion/.eslintrc # examples/using-emotion/.eslintrc.json # examples/using-excel/.eslintrc # examples/using-excel/.eslintrc.json # examples/using-gatsby-image/.eslintrc # examples/using-gatsby-image/.eslintrc.json # examples/using-glamor/.eslintrc # examples/using-glamor/.eslintrc.json # examples/using-hjson/.eslintrc # examples/using-hjson/.eslintrc.json # examples/using-mongodb/.eslintrc # examples/using-mongodb/.eslintrc.json # examples/using-page-loading-indicator/.eslintrc # examples/using-page-loading-indicator/.eslintrc.json # examples/using-path-prefix/.eslintrc # examples/using-path-prefix/.eslintrc.json # examples/using-react-native-web/.eslintrc # examples/using-react-native-web/.eslintrc.json # examples/using-react-url-query/.eslintrc # examples/using-react-url-query/.eslintrc.json # examples/using-redirects/.eslintrc # examples/using-redirects/.eslintrc.json # examples/using-remark-copy-linked-files/.eslintrc # examples/using-remark-copy-linked-files/.eslintrc.json # examples/using-sqip/src/components/polaroid.js # examples/using-sqip/src/layouts/index.js # examples/using-styled-components/.eslintrc # examples/using-styled-components/.eslintrc.json # examples/using-styled-jsx/.eslintrc # examples/using-styled-jsx/.eslintrc.json # examples/using-styletron/.eslintrc # examples/using-styletron/.eslintrc.json # examples/using-wordpress/gatsby-node.js # packages/gatsby-cli/package.json # packages/gatsby-image/package.json # packages/gatsby-image/src/index.js # packages/gatsby-link/package.json # packages/gatsby-plugin-catch-links/package.json # packages/gatsby-plugin-emotion/README.md # packages/gatsby-plugin-emotion/package.json # packages/gatsby-plugin-emotion/src/gatsby-node.js # packages/gatsby-plugin-feed/package.json # packages/gatsby-plugin-google-tagmanager/package.json # packages/gatsby-plugin-manifest/package.json # packages/gatsby-plugin-netlify/package.json # packages/gatsby-plugin-offline/package.json # packages/gatsby-plugin-postcss-sass/package.json # packages/gatsby-plugin-postcss-sass/src/__tests__/gatsby-node.js # packages/gatsby-plugin-postcss-sass/src/gatsby-node.js # packages/gatsby-plugin-sharp/package.json # packages/gatsby-plugin-sharp/src/index.js # packages/gatsby-plugin-sitemap/package.json # packages/gatsby-plugin-styletron/package.json # packages/gatsby-plugin-stylus/package.json # packages/gatsby-plugin-stylus/src/__tests__/gatsby-node.js # packages/gatsby-react-router-scroll/package.json # packages/gatsby-remark-autolink-headers/package.json # packages/gatsby-remark-copy-linked-files/package.json # packages/gatsby-remark-embed-snippet/package.json # packages/gatsby-remark-images/package.json # packages/gatsby-remark-katex/package.json # packages/gatsby-remark-prismjs/package.json # packages/gatsby-remark-responsive-iframe/package.json # packages/gatsby-source-contentful/package.json # packages/gatsby-source-contentful/src/gatsby-node.js # packages/gatsby-source-contentful/src/normalize.js # packages/gatsby-source-drupal/package.json # packages/gatsby-source-faker/package.json # packages/gatsby-source-filesystem/package.json # packages/gatsby-source-mongodb/package.json # packages/gatsby-source-mongodb/src/gatsby-node.js # packages/gatsby-source-wordpress/package.json # packages/gatsby-transformer-excel/package.json # packages/gatsby-transformer-json/README.md # packages/gatsby-transformer-json/package.json # packages/gatsby-transformer-remark/package.json # packages/gatsby-transformer-screenshot/package.json # packages/gatsby-transformer-sharp/package.json # packages/gatsby-transformer-sharp/src/extend-node-type.js # packages/gatsby-transformer-sharp/src/types.js # packages/gatsby-transformer-sqip/.babelrc # packages/gatsby-transformer-sqip/package.json # packages/gatsby-transformer-sqip/src/extend-node-type.js # packages/gatsby-transformer-yaml/package.json # packages/gatsby/cache-dir/static-entry.js # packages/gatsby/package.json # packages/gatsby/src/cache-dir/app.js # packages/gatsby/src/cache-dir/production-app.js # packages/gatsby/src/internal-plugins/query-runner/query-runner.js # packages/gatsby/src/schema/__tests__/data-tree-utils-test.js # packages/gatsby/src/schema/type-conflict-reporter.js # packages/gatsby/src/utils/api-browser-docs.js # packages/gatsby/src/utils/api-node-docs.js # packages/gatsby/src/utils/webpack.config.js # www/gatsby-config.js # www/package.json # www/src/components/masthead.js # www/src/data/sidebars/doc-links.yaml # www/src/data/sites.yml # www/src/layouts/index.js # www/src/pages/blog/index.js # www/src/pages/plugins.js # yarn.lock
* master: (219 commits) Revert "Add rawMarkdownBody to node.internal" (gatsbyjs#5769) Publish Change code highlights to the correct lines (gatsbyjs#5765) Update sitemap example to include posts and exclude sample page (gatsbyjs#5723) [gatsby-transformer-remark] add rawMarkdownBody (gatsbyjs#5557) [gatsby-image] add placeholderStyle prop (gatsbyjs#5745) [gatsby-plugin-sharp] toFormat fix and unify defaultArgs handling (gatsbyjs#5071) [gatsby-source-wordpress] Do not assume entities will exist (gatsbyjs#5004) [gatsby-transformer-excel] add option to disable raw output (gatsbyjs#5746) Update gatsby-config.js (gatsbyjs#5744) Publish [gatsby-source-mongodb] Use Promises to prevent calling done too early (gatsbyjs#5738) clues about this being advanced [gatsby-source-wordpress] Treat wp settings as a known type for inclusion (gatsbyjs#5708) [www] Add dot com to main navigation (gatsbyjs#5579) Publish fixed TOC links, shortened TOC, localhost edits Introduction to Gatsby blog post (gatsbyjs#5628) Update gatsby-config.js (gatsbyjs#5688) Add envinfo to gatsby-cli, issue template (gatsbyjs#5594) ... # Conflicts: # .github/ISSUE_TEMPLATE/bug_report.md # .github/ISSUE_TEMPLATE/question.md # README.md # docs/blog/author.yaml # docs/docs/adding-search.md # docs/docs/gatsby-starters.md # docs/docs/how-to-contribute.md # docs/docs/image-tutorial.md # docs/docs/source-plugin-tutorial.md # docs/docs/wordpress-source-plugin-tutorial.md # docs/docs/working-with-images.md # docs/tutorial/part-two/index.md # examples/image-processing/src/pages/index.js # examples/sitemap/gatsby-node.js # examples/sitemap/src/pages/index.js # examples/sitemap/src/pages/page-2.js # examples/sitemap/src/pages/secret.js # examples/using-asciidoc/.eslintrc # examples/using-contentful/.eslintrc # examples/using-contentful/.eslintrc.json # examples/using-css-modules/.eslintrc # examples/using-css-modules/.eslintrc.json # examples/using-csv/.eslintrc # examples/using-csv/.eslintrc.json # examples/using-drupal/.eslintrc # examples/using-drupal/.eslintrc.json # examples/using-emotion/.eslintrc # examples/using-emotion/.eslintrc.json # examples/using-excel/.eslintrc # examples/using-excel/.eslintrc.json # examples/using-gatsby-image/.eslintrc # examples/using-gatsby-image/.eslintrc.json # examples/using-glamor/.eslintrc # examples/using-glamor/.eslintrc.json # examples/using-hjson/.eslintrc # examples/using-hjson/.eslintrc.json # examples/using-mongodb/.eslintrc # examples/using-mongodb/.eslintrc.json # examples/using-page-loading-indicator/.eslintrc # examples/using-page-loading-indicator/.eslintrc.json # examples/using-path-prefix/.eslintrc # examples/using-path-prefix/.eslintrc.json # examples/using-react-native-web/.eslintrc # examples/using-react-native-web/.eslintrc.json # examples/using-react-url-query/.eslintrc # examples/using-react-url-query/.eslintrc.json # examples/using-redirects/.eslintrc # examples/using-redirects/.eslintrc.json # examples/using-remark-copy-linked-files/.eslintrc # examples/using-remark-copy-linked-files/.eslintrc.json # examples/using-sqip/src/components/polaroid.js # examples/using-sqip/src/layouts/index.js # examples/using-styled-components/.eslintrc # examples/using-styled-components/.eslintrc.json # examples/using-styled-jsx/.eslintrc # examples/using-styled-jsx/.eslintrc.json # examples/using-styletron/.eslintrc # examples/using-styletron/.eslintrc.json # examples/using-wordpress/gatsby-node.js # packages/gatsby-cli/package.json # packages/gatsby-image/package.json # packages/gatsby-image/src/index.js # packages/gatsby-link/package.json # packages/gatsby-plugin-catch-links/package.json # packages/gatsby-plugin-emotion/README.md # packages/gatsby-plugin-emotion/package.json # packages/gatsby-plugin-emotion/src/gatsby-node.js # packages/gatsby-plugin-feed/package.json # packages/gatsby-plugin-google-tagmanager/package.json # packages/gatsby-plugin-manifest/package.json # packages/gatsby-plugin-netlify/package.json # packages/gatsby-plugin-offline/package.json # packages/gatsby-plugin-postcss-sass/package.json # packages/gatsby-plugin-postcss-sass/src/__tests__/gatsby-node.js # packages/gatsby-plugin-postcss-sass/src/gatsby-node.js # packages/gatsby-plugin-sharp/package.json # packages/gatsby-plugin-sharp/src/index.js # packages/gatsby-plugin-sitemap/package.json # packages/gatsby-plugin-styletron/package.json # packages/gatsby-plugin-stylus/package.json # packages/gatsby-plugin-stylus/src/__tests__/gatsby-node.js # packages/gatsby-react-router-scroll/package.json # packages/gatsby-remark-autolink-headers/package.json # packages/gatsby-remark-copy-linked-files/package.json # packages/gatsby-remark-embed-snippet/package.json # packages/gatsby-remark-images/package.json # packages/gatsby-remark-katex/package.json # packages/gatsby-remark-prismjs/package.json # packages/gatsby-remark-responsive-iframe/package.json # packages/gatsby-source-contentful/package.json # packages/gatsby-source-contentful/src/gatsby-node.js # packages/gatsby-source-contentful/src/normalize.js # packages/gatsby-source-drupal/package.json # packages/gatsby-source-faker/package.json # packages/gatsby-source-filesystem/package.json # packages/gatsby-source-mongodb/package.json # packages/gatsby-source-mongodb/src/gatsby-node.js # packages/gatsby-source-wordpress/package.json # packages/gatsby-transformer-excel/package.json # packages/gatsby-transformer-json/README.md # packages/gatsby-transformer-json/package.json # packages/gatsby-transformer-remark/package.json # packages/gatsby-transformer-screenshot/package.json # packages/gatsby-transformer-sharp/package.json # packages/gatsby-transformer-sharp/src/extend-node-type.js # packages/gatsby-transformer-sharp/src/types.js # packages/gatsby-transformer-sqip/.babelrc # packages/gatsby-transformer-sqip/package.json # packages/gatsby-transformer-sqip/src/extend-node-type.js # packages/gatsby-transformer-yaml/package.json # packages/gatsby/cache-dir/static-entry.js # packages/gatsby/package.json # packages/gatsby/src/cache-dir/app.js # packages/gatsby/src/cache-dir/production-app.js # packages/gatsby/src/internal-plugins/query-runner/query-runner.js # packages/gatsby/src/schema/__tests__/data-tree-utils-test.js # packages/gatsby/src/schema/type-conflict-reporter.js # packages/gatsby/src/utils/api-browser-docs.js # packages/gatsby/src/utils/api-node-docs.js # packages/gatsby/src/utils/webpack.config.js # www/gatsby-config.js # www/package.json # www/src/components/masthead.js # www/src/data/sidebars/doc-links.yaml # www/src/data/sites.yml # www/src/layouts/index.js # www/src/pages/blog/index.js # www/src/pages/plugins.js # yarn.lock
Signed-off-by: Adam Mould adamwmould@gmail.com