本教程建立在上一篇文章的基礎上,提供了整合蓋茨比和WordPress的詳細演練。蓋茨比(Gatsby)的速度和安全利益吸引了WordPress用戶,提供了一種利用這些優勢的方法,同時保留熟悉的WordPress內容管理經驗。
本指南側重於實際實施,從各種資源中汲取利用並應對潛在的挑戰。請注意,WPGRAPHQL和GATSBY CLI是積極開發的,這意味著版本的兼容性至關重要。該項目利用WPGRAPHQL 0.8.3, gatsby-source-wpgraphql
2.5.1和GATSBY CLI 2.12.21。始終請參閱官方文檔以獲取最新更新。
有幾個出色的蓋茨比起步劑,包括亞歷山大·斯帕拉托(Alexandra Spalato)的gatsby-wordpress-theme-blog
,扎克·戈登(Zac Gordon)和穆罕默德·穆辛(Muhammad Muhsin)的twenty-nineteen-gatsby-theme
。
先決條件
跟隨,您需要:
- 基本的反應和JavaScript知識。許多在線資源提供介紹性指南。
- 掌握了蓋茨比動態頁面創建機制。全面的教程很容易獲得。
- 一個工作的WordPress安裝。有很多指南可以協助設置。
利用現有資源
該項目受益於先前的蓋茨比經驗和可重複使用的組件(版式,佈局等)。包括關鍵資源:
- 亨里克·沃思(Henrik Wirth)的綜合蓋茨比WordPress入門指南。
- 傑森·倫斯托夫(Jason Lenstorf)的jamstack遷移教程。
- 穆罕默德·穆辛(Muhammad Muhsin)的指南關於載入二十個主題的指南。
該教程反映了Henrik Wirth的結構,省略了諸如圖像處理和ACF柔性內容之類的高級功能。
項目階段:
- WordPress和Gatsby設置
- 內容遷移
- 導航實施
- 博客文章顯示
- 樣式和部署
階段1:設置WordPress和Gatsby
首先建立一個WordPress站點(現有或新的,甚至是本地安裝)開始。該項目使用二十個主題。
安裝必需插件
安裝WPGRAPHQL(對於GraphQL API)和WPGRAPHIQL(可選,但有助於測試查詢)。這些插件可能在WordPress插件目錄中不可用;直接從github下載並手動安裝。 WPGRAPHIQL在WordPress儀表板中提供了方便的測試接口。
蓋茨比站點初始化
使用默認啟動器創建本地蓋茨比網站:
蓋茨比新的wordpress-gatsby https://github.com/gatsbyjs/gatsby-starter-default
啟動開發服務器( gatsby develop
),然後訪問localhost:8000
的入門頁面。
安裝並配置gatsby-source-graphql
插件插件:
紗線添加gatsby-source-graphql#或npm安裝-Save gatsby-source-raphql
配置gatsby-config.js
:
Module.exports = { 插件:[ { 決心:“蓋茨比 - 蘇格拉夫Ql”, 選項: { 鍵入:“ wpgraphql”, fieldname:“ wpcontent”, URL:“ https://tinjurewp.com/wp-gatsby/graphql”,//或使用環境變量 },, },, ],, };
考慮使用dotenv
模塊進行環境變量來管理敏感數據。
重新啟動服務器後,可以通過https://localhost:8000/__graphql/
訪問WPGRAPHQL API。
階段2:遷移WordPress內容
Gatsby通過使用GraphQl查詢數據在構建過程中創建頁面。這涉及使用Gatsby的onCreateNode
和createPages
API。
內容準備
將帖子和頁面添加到您的WordPress網站。從Gatsby pages
文件夾中刪除index.js
和page-2.js
以避免衝突。
模板創建
為帖子( /src/templates/post/index.js
)創建模板和頁面( /src/templates/page/index.js
):
// src/templates/post/index.js(示例) 從“反應”中導入反應; 從“ ../../../components/layout”導入佈局; 從“ ../.././components/seo”導入SEO; const post =({pageContext})=> { const post = pageContext.post; 返回 ( <layout> <seo title="{post.title}"></seo> <h1 id="post-title">{post.title}</h1> <div dangerouslysetinnerhtml="{{" __html: post.content></div> </layout> ); }; 導出默認帖子;
createPages
API實現
使用Gatsby的createPages
API從WordPress數據中生成頁面。這涉及GraphQl查詢和數據映射。 (請參閱鏈接的GitHub存儲庫中的完整代碼)。
第三階段:實施導航
WordPress的導航管理允許創建菜單。本節重點是將主要菜單移植到Gatsby。
WordPress中的菜單創建
在WordPress中創建一個名為“主”的菜單,將鏈接添加到主頁,示例頁面和其他相關內容。
GraphQl查詢
查詢菜單項使用GraphiQl:
查詢myquery { menuitems(其中:{位置:primary}){ 節點{ 標籤 URL 標題 目標 } } }
組件創建
創建菜單項( MenuItem.js
)和菜單本身( Menu.js
)的組件,處理從絕對路徑到相對路徑的URL轉換。 (請參閱鏈接的GitHub存儲庫中的完整代碼)。
集成菜單
將Menu
組件添加到Layout
組件中。實施一個UniversalLink
組件來處理內部和外部鏈接。
第4階段:顯示博客文章
該階段著重於創建博客文章模板和分頁的組件。
全局變量
創建一個globals.js
文件以管理blogURI
之類的設置。
博客模板
創建一個博客模板( /src/templates/post/blog.js
)以顯示帖子,利用PostEntry
和Pagination
組件。
發布輸入組件
創建一個PostEntry
部件以顯示單個帖子,包括特色圖像和摘錄。
圖像組件
創建一個Image
組件來處理特色圖像,包括後備圖像。
分頁部分
創建一個Pagination
組件,用於通過分頁的帖子導航。
重構createPages
和createPosts
rebactor createPages.js
和createPosts.js
使用GraphQl片段來改善代碼組織和可維護性。 (請參閱鏈接的GitHub存儲庫中的完整代碼)。
第5階段:樣式和部署
本節涵蓋了樣式和部署策略。
造型
使用SASS或其他首選方法進行樣式。考慮使用@wordpress/block-library
合併WordPress塊樣式。
部署
利用NetLify或其他平台進行連續部署。考慮使用jamstack部署插件進行由WordPress更改觸發的自動部署。
該綜合指南為整合蓋茨比和WordPress提供了堅實的基礎。請記住,請諮詢鏈接的GitHub存儲庫以獲取完整的代碼示例和更多詳細信息。該過程涉及多個步驟,需要對Gatsby和WordPress有很好的了解。但是,結果是一個快速,安全且可維護的網站。
以上是使用WordPress數據創建蓋茨比網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

這是我們在形式可訪問性上進行的小型系列中的第三篇文章。如果您錯過了第二篇文章,請查看“以:focus-visible的管理用戶焦點”。在

CSS盒子陰影和輪廓屬性獲得了主題。讓我們查看一些在真實主題中起作用的示例,以及我們必須將這些樣式應用於WordPress塊和元素的選項。

Svelte Transition API提供了一種使組件輸入或離開文檔(包括自定義Svelte Transitions)時動畫組件的方法。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。