찾다
웹 프론트엔드CSS 튜토리얼WordPress 데이터가 포함 된 Gatsby 사이트 작성

WordPress 데이터가 포함 된 Gatsby 사이트 작성

이 튜토리얼은 이전 기사를 바탕으로 Gatsby와 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 포함하여 몇 가지 훌륭한 개츠비 스타터가 있습니다.

전제 조건

따라 가려면 다음과 같이 필요합니다.

  • 기본 반응 및 자바 스크립트 지식. 수많은 온라인 리소스가 입문 안내서를 제공합니다.
  • 개츠비의 역동적 인 페이지 제작 메커니즘의 파악. 포괄적 인 튜토리얼을 쉽게 사용할 수 있습니다.
  • 작업 WordPress 설치. 설정을 지원하기 위해 많은 가이드가 존재합니다.

기존 리소스를 활용합니다

이 프로젝트는 이전 개츠비 경험과 재사용 가능한 구성 요소 (타이포그래피, 레이아웃 등)의 혜택을 받았습니다. 주요 리소스 포함 :

  • Henrik Wirth의 포괄적 인 Gatsby WordPress 스타터 가이드.
  • Jason Lenstorf의 Jamstack Migration Tutorial.
  • Muhammad Muhsin 's Guide Twenty Nineteen 테마의 가이드.

이 튜토리얼은 Henrik Wirth의 구조를 반영하여 이미지 처리 및 ACF Flexible Content와 같은 고급 기능을 생략합니다.

프로젝트 단계 :

  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 플러그인을 설치하고 구성하십시오.

 원사 Add Gatsby-Source-GraphQL # 또는 NPM 설치 -Save Gatsby-Source-GraphQL

gatsby-config.js 구성 :

 module.exports = {
  플러그인 : [
    {
      해결 : "Gatsby-Source-GraphQL",
      옵션 : {
        typeName : "wpgraphql",
        FieldName : "WPContent",
        URL : "https://tinjurewp.com/wp-gatsby/graphql"또는 환경 변수를 사용합니다
      },
    },
  ],,
};

환경 변수에 dotenv 모듈을 사용하여 민감한 데이터를 관리하는 것을 고려하십시오.

서버를 다시 시작한 후 WPGRAPHQL API는 https://localhost:8000/__graphql/ 에서 Gatsby를 통해 액세스 할 수 있습니다.

2 단계 : WordPress 컨텐츠 마이그레이션

Gatsby는 GraphQL로 데이터를 쿼리하여 빌드 프로세스 중에 페이지를 만듭니다. 여기에는 Gatsby의 onCreateNodecreatePages API를 사용하는 것이 포함됩니다.

내용 준비

WordPress 사이트에 게시물과 페이지를 추가하십시오. 갈등을 피하기 위해 Gatsby pages 폴더에서 index.jspage-2.js 제거하십시오.

템플릿 생성

게시물 ( /src/templates/post/index.js ) 및 pages ( /src/templates/page/index.js ) 용 템플릿 생성 :

 // src/templates/post/index.js (예)
"React"에서 React 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의 내비게이션 관리는 메뉴를 생성 할 수 있습니다. 이 섹션에서는 기본 메뉴를 Gatsby로 포팅하는 데 중점을 둡니다.

WordPress의 메뉴 작성

WordPress에서 "Primary"라는 메뉴를 작성하여 홈페이지, 샘플 페이지 및 기타 관련 콘텐츠에 링크를 추가하십시오.

그래프 QL 쿼리

graphiql을 사용한 쿼리 메뉴 항목 :

 쿼리 myQuery {
  menuitems (여기서 : {location : primary}) {
    노드 {
      상표
      URL
      제목
      목표
    }
  }
}

구성 요소 생성

메뉴 항목 ( MenuItem.js ) 및 메뉴 자체 ( Menu.js )의 구성 요소를 절대에서 상대 경로로 처리합니다. (연결된 GitHub 리포지토리의 전체 코드를 참조하십시오).

메뉴 통합

Layout 구성 요소에 Menu 구성 요소를 추가하십시오. 내부 및 외부 링크를 모두 처리 할 수있는 UniversalLink 구성 요소를 구현하십시오.

4 단계 : 블로그 게시물 표시

이 단계는 페이지 매김을위한 블로그 게시물 템플릿 및 구성 요소를 만드는 데 중점을 둡니다.

글로벌 변수

blogURI 와 같은 설정을 관리하기 위해 globals.js 파일을 만듭니다.

블로그 템플릿

PostEntryPagination 구성 요소를 사용하여 게시물을 표시하려면 블로그 템플릿 ( /src/templates/post/blog.js )을 만듭니다.

입력 후 구성 요소

추천 이미지 및 발췌문을 포함하여 개별 게시물을 표시하기 위해 PostEntry 구성 요소를 작성하십시오.

이미지 구성 요소

폴백 이미지를 포함하여 주요 이미지를 처리 ​​할 Image 구성 요소를 만듭니다.

페이지 매김 구성 요소

Paginated Post를 탐색하기위한 Pagination 구성 요소를 만듭니다.

Refactoring createPagescreatePosts

createPages.jscreatePosts.js Refactor GraphQL 조각을 사용하여 코드 구성 및 유지 관리 가능성을 향상시킵니다. (연결된 GitHub 리포지토리의 전체 코드를 참조하십시오).

5 단계 : 스타일링 및 배포

이 섹션에서는 스타일링 및 배포 전략을 다룹니다.

스타일링

스타일링에 SASS 또는 기타 선호하는 방법을 사용하십시오. @wordpress/block-library 사용하여 WordPress 블록 스타일을 통합하는 것을 고려하십시오.

전개

지속적인 배포를 위해 NetLify 또는 기타 플랫폼을 활용하십시오. WordPress 변경에 의해 트리거 된 자동 배포에 Jamstack Deployments 플러그인 사용을 고려하십시오.

이 포괄적 인 가이드는 Gatsby와 WordPress를 통합하기위한 탄탄한 기반을 제공합니다. 전체 코드 예제 및 자세한 내용은 링크 된 Github 저장소에 문의하십시오. 이 과정에는 여러 단계가 포함되며 개츠비와 워드 프레스를 잘 이해해야합니다. 그러나 결과는 빠르고 안전하며 유지 관리 가능한 웹 사이트입니다.

위 내용은 WordPress 데이터가 포함 된 Gatsby 사이트 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례Mar 08, 2025 am 09:45 AM

이것은 우리가 양식 접근성에 대해 한 작은 시리즈의 세 번째 게시물입니다. 두 번째 게시물을 놓친 경우 "사용자 초점 관리 : Focus-Visible"을 확인하십시오. ~ 안에

WordPress 블록 및 요소에 상자 그림자를 추가합니다WordPress 블록 및 요소에 상자 그림자를 추가합니다Mar 09, 2025 pm 12:53 PM

CSS Box-Shadow 및 개요 속성은 주제를 얻었습니다. 실제 테마에서 어떻게 작동하는지에 대한 몇 가지 예와 이러한 스타일을 WordPress 블록 및 요소에 적용 해야하는 옵션을 보자.

첫 번째 맞춤형 전환을 만듭니다첫 번째 맞춤형 전환을 만듭니다Mar 15, 2025 am 11:08 AM

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

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 및 동물 군을 사용하여 이더 리움 앱 구축Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축Mar 28, 2025 am 09:18 AM

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

NPM 명령은 무엇입니까?NPM 명령은 무엇입니까?Mar 15, 2025 am 11:36 AM

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.

See all articles

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.