目次
前提条件
既存のリソースを活用します
プロジェクトフェーズ:
フェーズ1:WordPressとGatsbyのセットアップ
必須プラグインをインストールします
ギャツビーサイトの初期化
フェーズ2:ワードプレスコンテンツの移行
コンテンツの準備
テンプレート作成
{post.title}
createPages API実装
フェーズ3:ナビゲーションの実装
WordPressのメニュー作成
GraphQLクエリ
コンポーネントの作成
メニューの統合
フェーズ4:ブログ投稿の表示
グローバル変数
ブログテンプレート
ポストエントリコンポーネント
画像コンポーネント
ページネーションコンポーネント
createPagescreatePostsをリファクタリングします
フェーズ5:スタイリングと展開
スタイリング
展開
ホームページ ウェブフロントエンド CSSチュートリアル WordPressデータを使用してGatsbyサイトを作成します

WordPressデータを使用してGatsbyサイトを作成します

Apr 04, 2025 am 10:30 AM

WordPressデータを使用してGatsbyサイトを作成します

このチュートリアルは、以前の記事に基づいており、ギャツビーとWordPressの統合の詳細なウォークスルーを提供します。 Gatsbyのスピードとセキュリティ給付は、WordPressユーザーにアピールし、おなじみのWordPressコンテンツ管理エクスペリエンスを保持しながら、これらの利点を活用する方法を提供します。

このガイドは、実用的な実装に焦点を当て、さまざまなリソースから引き出し、潜在的な課題に対処します。 WPGRAPHQLとGatsby CLIが積極的に開発されていることに注意してください。つまり、バージョンの互換性が重要であることを意味します。このプロジェクトは、WPGRAPHQL 0.8.3、 gatsby-source-wpgraphql 2.5.1、およびGatsby CLI 2.12.21を利用しています。最新の更新については、常に公式ドキュメントを参照してください。

アレクサンドラ・スパラトのgatsby-wordpress-theme-blogやザック・ゴードンとムハンマド・ムシンのtwenty-nineteen-gatsby-themeなど、いくつかの優れたギャツビーのスターターが存在します。

前提条件

従うには、次のことが必要です。

  • 基本的な反応とJavaScriptの知識。多数のオンラインリソースが紹介ガイドを提供しています。
  • ギャツビーのダイナミックなページ作成メカニズムの把握。包括的なチュートリアルはすぐに利用できます。
  • 動作するWordPressのインストール。セットアップを支援するために、たくさんのガイドが存在します。

既存のリソースを活用します

このプロジェクトは、以前のギャツビーの経験と再利用可能なコンポーネント(タイポグラフィ、レイアウトなど)の恩恵を受けました。主要なリソースが含まれます:

  • Henrik Wirthの包括的なギャツビーワードプレススターターガイド。
  • ジェイソン・レンストーフのジャムスタック移行チュートリアル。
  • ムハンマド・ムーシンの21のテーマの移植に関するガイド。

このチュートリアルは、Henrik Wirthの構造を反映しており、画像処理やACF柔軟なコンテンツなどの高度な機能を省略しています。

プロジェクトフェーズ:

  1. WordPressとGatsbyのセットアップ
  2. コンテンツの移行
  3. ナビゲーションの実装
  4. ブログ投稿表示
  5. スタイリングと展開

フェーズ1:WordPressとGatsbyのセットアップ

WordPressサイトを確立することから始めます(既存または新しい、さらにはローカルインストールが機能します)。このプロジェクトでは、20のテーマを使用しています。

必須プラグインをインストールします

WPGRAPHQL(GRAPHQL API用)およびWPGraphiQl(オプションですが、クエリのテストに役立ちます)をインストールします。これらのプラグインは、WordPressプラグインディレクトリで使用できない場合があります。 Githubから直接ダウンロードし、手動でインストールします。 WPGRAPHIQLは、WordPressダッシュボード内の便利なテストインターフェイスを提供します。

ギャツビーサイトの初期化

デフォルトのスターターを使用して、地元のギャツビーサイトを作成します。

 Gatsby New WordPress-Gatsby https://github.com/gatsbyjs/gatsby-starter-default
ログイン後にコピー

開発サーバー( gatsby develop )を開始し、 localhost:8000スターターページにアクセスします。

gatsby-source-graphqlプラグインをインストールして構成します。

 YARNはGatsby-Source-Graphql#またはNPMインストールを追加します -  Gatsby-Source-graphqlを使用します
ログイン後にコピー

gatsby-config.jsを構成:

 module.exports = {
  プラグイン:[
    {
      解決:「Gatsby-Source-Graphql」、
      オプション:{
        TypeName: "wpgraphql"、
        フィールド名:「wpcontent」、
        url: "https://tinjurewp.com/wp-gatsby/graphql"、//または環境変数を使用します
      }、
    }、
  ]、、
};
ログイン後にコピー

環境変数にdotenvモジュールを使用して、機密データを管理することを検討してください。

サーバーを再起動した後、WPGRAPHQL APIはhttps://localhost:8000/__graphql/でGatsbyからアクセスできます。

フェーズ2:ワードプレスコンテンツの移行

Gatsbyは、GraphQLを使用してデータを照会することにより、ビルドプロセス中にページを作成します。これには、GatsbyのonCreateNodeおよびcreatePages APIの使用が含まれます。

コンテンツの準備

WordPressサイトに投稿とページを追加します。競合を避けるために、Gatsby pagesフォルダーからindex.jspage-2.jsを削除します。

テンプレート作成

投稿( /src/templates/post/index.js )およびページ( /src/templates/page/index.js )のテンプレートを作成します。

 // src/templates/post/index.js(例)
「React」からのImport React;
"../../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リポジトリの完全なコードを参照)。

フェーズ3:ナビゲーションの実装

WordPressのナビゲーション管理により、メニューを作成できます。このセクションでは、プライマリメニューをギャツビーに移植することに焦点を当てています。

WordPressのメニュー作成

WordPressで「プライマリ」という名前のメニューを作成し、ホームページ、サンプルページ、その他の関連コンテンツへのリンクを追加します。

GraphQLクエリ

graphiqlを使用したクエリメニュー項目:

 QueryMyquery {
  menuitems(where:{location: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をリファクタリングします

Refactor createPages.jsおよびcreatePosts.js GraphQLフラグメントを使用して、コードの組織と保守性を向上させます。 (リンクされたGithubリポジトリの完全なコードを参照)。

フェーズ5:スタイリングと展開

このセクションでは、スタイリング戦略と展開戦略について説明します。

スタイリング

スタイリングにはSASSまたはその他の好みの方法を使用します。 @wordpress/block-libraryを使用して、WordPressブロックスタイルを組み込むことを検討してください。

展開

継続的な展開のためにNetlifyまたはその他のプラットフォームを利用します。 WordPressの変更によってトリガーされる自動展開には、Jamstack Deploymentsプラグインを使用することを検討してください。

この包括的なガイドは、GatsbyとWordPressを統合するための強固な基盤を提供します。完全なコードの例と詳細については、リンクされたGithubリポジトリをご覧ください。このプロセスにはいくつかのステップが含まれており、ギャツビーとワードプレスの両方を十分に理解する必要があります。ただし、結果は高速で安全で保守可能なWebサイトです。

以上がWordPressデータを使用してGatsbyサイトを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

See all articles