搜尋
首頁web前端css教學使用WordPress數據創建蓋茨比網站

使用WordPress數據創建蓋茨比網站

本教程建立在上一篇文章的基礎上,提供了整合蓋茨比和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柔性內容之類的高級功能。

項目階段:

  1. WordPress和Gatsby設置
  2. 內容遷移
  3. 導航實施
  4. 博客文章顯示
  5. 樣式和部署

階段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的onCreateNodecreatePages API。

內容準備

將帖子和頁面添加到您的WordPress網站。從Gatsby pages文件夾中刪除index.jspage-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 )以顯示帖子,利用PostEntryPagination組件。

發布輸入組件

創建一個PostEntry部件以顯示單個帖子,包括特色圖像和摘錄。

圖像組件

創建一個Image組件來處理特色圖像,包括後備圖像。

分頁部分

創建一個Pagination組件,用於通過分頁的帖子導航。

重構createPagescreatePosts

rebactor createPages.jscreatePosts.js使用GraphQl片段來改善代碼組織和可維護性。 (請參閱鏈接的GitHub存儲庫中的完整代碼)。

第5階段:樣式和部署

本節涵蓋了樣式和部署策略。

造型

使用SASS或其他首選方法進行樣式。考慮使用@wordpress/block-library合併WordPress塊樣式。

部署

利用NetLify或其他平台進行連續部署。考慮使用jamstack部署插件進行由WordPress更改觸發的自動部署。

該綜合指南為整合蓋茨比和WordPress提供了堅實的基礎。請記住,請諮詢鏈接的GitHub存儲庫以獲取完整的代碼示例和更多詳細信息。該過程涉及多個步驟,需要對Gatsby和WordPress有很好的了解。但是,結果是一個快速,安全且可維護的網站。

以上是使用WordPress數據創建蓋茨比網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐Mar 08, 2025 am 09:45 AM

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

將框陰影添加到WordPress塊和元素將框陰影添加到WordPress塊和元素Mar 09, 2025 pm 12:53 PM

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

使您的第一個自定義苗條過渡使您的第一個自定義苗條過渡Mar 15, 2025 am 11:08 AM

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

使用GraphQL緩存使用GraphQL緩存Mar 19, 2025 am 09:36 AM

如果您最近開始使用GraphQL或審查了其優點和缺點,那麼您毫無疑問聽到了諸如“ GraphQl不支持緩存”或

優雅且酷的自定義CSS捲軸:展示櫃優雅且酷的自定義CSS捲軸:展示櫃Mar 10, 2025 am 11:37 AM

在本文中,我們將深入研究滾動條。我知道,這聽起來並不魅力,但請相信我,一個精心設計的頁面是齊頭並進的

展示,不要說展示,不要說Mar 16, 2025 am 11:49 AM

您花多少時間為網站設計內容演示文稿?當您撰寫新的博客文章或創建新頁面時,您是在考慮

使用Redwood.js和Fauna構建以太坊應用使用Redwood.js和Fauna構建以太坊應用Mar 28, 2025 am 09:18 AM

隨著最近比特幣價格超過20k美元的攀升,最近打破了3萬美元,我認為值得深入研究創建以太坊

NPM命令是什麼?NPM命令是什麼?Mar 15, 2025 am 11:36 AM

NPM命令為您運行各種任務,無論是一次性或連續運行的過程,例如啟動服務器或編譯代碼。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

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

mPDF

mPDF

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

SublimeText3 Mac版

SublimeText3 Mac版

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

MantisBT

MantisBT

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