Sử dụng WordPress như một CMS không đầu

Sep 12, 2025
Cách
[số 8]

Lần đầu tiên tôi nghe về cách tiếp cận CMS không đầu trong một cuộc nói chuyện mà tôi đã xem từ Twin City Drupal. Tôi thích ý tưởng về sự tách biệt mối quan tâm giữa nội dung tác giả và xem nó.

  • Các dịch vụ lưu trữ web tốt nhất năm 2019

Tôi đã trải nghiệm cách dễ dàng một máy chủ có thể đi xuống, lấy ra tất cả các trang web trên đó, dẫn đến phút hoặc nhiều giờ của sự hoảng loạn nhịp tim (có 24 trên của tôi). Tôi cũng đã thấy cách một trang web dựa trên CMS nguyên khối có thể bị ảnh hưởng an ninh và mất rất nhiều nỗ lực để sửa chữa (điều đó đã mất hơn hai ngày làm việc không trả lương). Cho một loạt các web hosting Tùy chọn nhà cung cấp, kiểm tra hướng dẫn của chúng tôi.

  • 23 Ví dụ tuyệt vời về các trang web WordPress

Tôi đã thấy những lợi ích của CDN (Mạng phân phối nội dung) có thể lưu trữ hình ảnh, tệp âm thanh và video của bạn trên các máy chủ được tối ưu hóa để phân phối nhanh và có thể sao chép các tệp đó trên toàn thế giới để giao hàng nhanh chóng cho các khu vực đó nếu cần. Điều gì xảy ra nếu toàn bộ trang web của bạn có thể được hưởng lợi từ phương pháp này?

Bạn sẽ cần…

● Một máy tính có kết nối Internet (OBVS)
● Trình chỉnh sửa mã (mã Atom hoặc VS)
● Một dòng lệnh / thiết bị đầu cuối
● Đã cài đặt phiên bản Node.js gần đây (bạn có thể tải xuống & amp; Cài đặt đây )
● Một trang web WordPress để có được nội dung từ. Nếu bạn không có, bạn có thể sử dụng nền tảng WordPress.com hoặc điều này Gói xây dựng Heroku .
● Các tệp nguồn Từ GitHub. .

Bắt đầu

WordPress xuất phát ra khỏi hộp với API REST và đó là những gì chúng ta sẽ sử dụng để truy vấn dữ liệu của bạn. Vì vậy, chúng tôi không thực sự cần bất cứ điều gì khác! Trang web hiển thị của chúng tôi hoàn toàn tách biệt với trang web nội dung của chúng tôi, vì vậy chúng tôi sẽ không cần Chủ đề WordPress. hoặc bất kỳ tùy chỉnh nào khác ngoài một số plugin (tùy chọn). Mặc dù tất nhiên bạn có thể thêm những thứ này nếu bạn muốn.

Ngoại lệ là nếu bạn cần các trường Meta tùy chỉnh cho các khu vực nội dung bổ sung. Bạn có thể đang sử dụng các trường tùy chỉnh nâng cao để làm như vậy; Bạn có thể thêm dữ liệu đó vào API WordPress bằng cách Cài đặt plugin này .

Sử dụng trình tạo trang web tĩnh

Use WordPress as a headless CMS: Gatsby starter screen

Màn hình khởi động mặc định Gatsby

Bây giờ chúng ta có nguồn nội dung của chúng tôi, hãy tìm nạp dữ liệu và hiển thị nó bằng trình tạo trang web tĩnh. Vũ khí của tôi được lựa chọn trong lĩnh vực này là Gatsby. , một trình tạo trang web tĩnh tuyệt vời được xây dựng với JavaScript. (Xem những thứ này người tạo ra trang web chọn cho những cách đơn giản để xây dựng một trang web.)

Nếu bạn đang tìm kiếm một cách tốt để xây dựng các kỹ năng JavaScript của mình và học phản ứng bằng cách bị mắc kẹt vào một số mã, tôi khuyên bạn nên thử Gatsby để làm như vậy. Tôi đã học được rất nhiều thứ bằng cách chơi với nó.

Đầu tiên, hãy cài đặt một công cụ dòng lệnh cho phép chúng ta tạo các trang web Gatsby:

npm install -global gatsby-cli

Bây giờ, hãy điều hướng đến thư mục mà bạn muốn giữ trang web của mình và chạy lệnh này:

gatsby new blog

Điều này sẽ tạo một thư mục mới gọi là 'Blog' và cài đặt Gatsby và các phụ thuộc của nó vào thư mục này. Mở thư mục này trong trình soạn thảo văn bản yêu thích của bạn. Có vẻ như có rất nhiều tập tin ở đó. Đừng lo lắng, chúng tôi sẽ chỉ chỉnh sửa trực tiếp gatsby-config.js. Cái gì gatsby-node.js. tập tin, và SRC. thư mục, đó là nơi các mẫu của chúng tôi trực tiếp.

Nếu bạn có nhiều tệp để lưu trữ, nó đáng để nâng cấp của bạn lưu trữ đám mây .

Nhận được nội dung của chúng tôi

Bước đầu tiên chúng tôi muốn thực hiện là tìm nạp nội dung của chúng tôi từ API của trang web WordPress.

Để làm điều đó, chúng ta sẽ cài đặt Gatsby-Source-WordPress , một plugin trước kịch cho WordPress. Điều này minh họa một trong những lý do chính tôi yêu Gatsby - bạn có thể lấy dữ liệu từ nhiều nguồn khác nhau. Rất nhiều trình tạo trang web tĩnh bị hạn chế sử dụng các tệp Markdown nhưng Gatsby rất linh hoạt.

Hệ sinh thái plugin của Gatsby rất trưởng thành. Có rất nhiều cách được viết sẵn để lấy dữ liệu của bạn và nhiều chức năng thông minh khác cũng có ích.

Để cài đặt plugin, hãy thay đổi thư mục đầu tiên vào trang Gatsby mới của bạn bằng cách sử dụng lệnh này: blog cd. .

Bây giờ chạy lệnh này: Cài đặt NPM --Ave GatsBySource-WordPres S.

Khi đã xong, đã đến lúc mở tệp Gatsby-Config.js. Bạn sẽ thấy rằng đã có một số thiết lập cơ bản tại chỗ mà Gatsby sẽ cho chúng ta theo mặc định. Chúng tôi sẽ xây dựng dựa trên đó để cấu hình plugin của chúng tôi ở đây:

 mô-đun.exports = {
 SiteMetadata: {
  Tiêu đề: 'Gatsby mặc định khởi động',
 },
 bổ sung: [
  'Gatsby-plugin-React-Mũ bảo hiểm',
  Đồn là
   Giải quyết: "Gatsby-Source-WordPress",
   Tùy chọn: {
    BASEURL: "My-Wordpress-site.com",
    Giao thức: "https",
    Hostingwpcom: Sai,
    USEACF: Đúng,
    SearchandReplacecontenturls: {
     SourceURL: "https://my-wordpress-site.com",
     Thay thế giới thiệu: "https://my-static-site.com",
    Không thể
   },
  },
 ],
} 

Nó đã làm việc?

Bạn có thể kiểm tra bằng cách mở thiết bị đầu cuối của bạn, gõ Gatsby phát triển. và xem những gì xảy ra. Được cảnh báo! Ngay cả khi bạn có cài đặt của mình chính xác, bạn sẽ nhận được một số cảnh báo - đây có thể là Gatsby tìm kiếm nội dung mà bạn chưa viết.

Bây giờ bạn có thể xem Gatsby-Starter mặc định trong trình duyệt.

http: // localhost: 8000 /

Xem GRAPHIQL, IDE trong trình duyệt, để khám phá dữ liệu và lược đồ trang web của bạn.

http: // localhost: 8000 / ___ graphql

Lưu ý rằng bản dựng phát triển không được tối ưu hóa. Để tạo một bản dựng sản xuất, sử dụng Gatsby Build.

Nếu Gatsby mặc định Starer (phải) không phải là thứ bạn nhận được, hãy kiểm tra trang web WordPress của bạn không nằm trên một tên miền phụ, đó chắc chắn đang sử dụng HTTPS hoặc HTTP và bạn có cùng cài đặt.

Bây giờ chúng ta có thể truy cập http: // localhost: 8000 / và xem trang web Gatsby của chúng tôi!

Chúng ta có thể truy vấn dữ liệu của chúng tôi?

Bạn có thể nhận thấy rằng không có nội dung WordPress ở đây. Điều này là do chúng tôi chưa nói với Gatsby phải làm gì với nó. Trước khi chúng tôi làm điều đó, hãy kiểm tra chúng tôi thực sự đã có nội dung của chúng tôi có sẵn cho Gatsby. Để làm điều đó, hãy truy cập URL này:

http: // localhost: 8000 / ___ graphql

Công cụ tích hợp này được gọi là Graphiql và là một sức mạnh bí mật khác của Gatsby.

GraphQL tương tự như phần còn lại: đó là một cách để truy vấn dữ liệu. Nhưng với GraphQL, bạn có thể tương tác với dữ liệu của mình dễ dàng hơn nhiều. GRAPHIQL (IDE trực quan cho GraphQL) có thể cho chúng ta thấy một số thủ thuật này. Trên bảng điều khiển bên trái, hãy thử gõ các cách sau:

 {
 AllWordpressPost {
  cạnh {
   nút {
    Tôi
    sên.
    trạng thái
    bản mẫu
    định dạng
   Không thể
  Không thể
 Không thể
} 

Điều này có thể trông hơi giống JSON nhưng không phải vậy. Đó là một ngôn ngữ truy vấn mới mà tôi nghĩ rằng một ngày nào đó sẽ thay thế phần lớn là một cách để giao tiếp với API.

Bạn đã nhận được gì khi nhấn Ctrl + Enter in GRAPHIQL? Bạn hy vọng sẽ thấy các bài đăng và trang WordPress của bạn ở phía bên phải màn hình.

Chúng tôi thực sự sẽ sử dụng truy vấn này trong bước tiếp theo của chúng tôi, vì vậy hãy giữ cho nó tiện dụng! Bạn có thể muốn xem dữ liệu nào khác bạn có thể nhận được với Graphiql trong khi bạn đang ở đây. Nếu bạn muốn làm điều đó, hãy thử di chuyển con trỏ xung quanh và nhập không gian Ctrl + và / hoặc Ctrl + Enter. Điều đó sẽ tiết lộ các nhóm nội dung khác.

Vì vậy, bây giờ chúng ta có nội dung trong Gatsby. Tiếp theo, chúng ta cần hiển thị nó.

Hiển thị bài viết của chúng tôi

Use WordPress as a headless CMS: Gatsby development 404 screen

Trang phát triển Gatsby 404 Hiển thị tất cả các bài viết WordPress của chúng tôi

Đối với bước tiếp theo này, chúng tôi sẽ sử dụng gatsby-node.js. tập tin.

gatsby-node.js. là một tập tin bạn có thể sử dụng để tương tác với "API Node" của Gatsby. Tại đây bạn có thể kiểm soát cách trang web của bạn được tạo và tạo các trang, bài viết và nhiều hơn nữa.

Chúng ta sẽ viết một số hướng dẫn ở đây để nói với Gatsby Phải làm gì với dữ liệu của chúng tôi:

 Const Path = yêu cầu (`path`);

xuất.createpages = ({graphql, prinactioncreatsors})
= & gt; Đồn là
 const {sreeparepage} = poundactioncreators
 Trả lại lời hứa mới ((giải quyết, từ chối) = & gt; {
  graphql (
   `.
   Đồn là
    AllWordpressPost {
     cạnh {
      nút {
       Tôi
       sên.
       trạng thái
       bản mẫu
       định dạng
      Không thể
     Không thể
    Không thể
   Không thể
  `.
 ) .Then (kết quả = & gt; {
   nếu (kết quả.errors) {
    Console.log (kết quả.Errors)
    từ chối (kết quả .errors)
   Không thể

   Const posttemplate = path.resolve (`./src/templates/
post.js`)

   kết quả.data.allwordpresspost.edges.foreach (edge ​​= & gt; {
    tạo trang({
     Đường dẫn: `/ $ {edge.node.slug} /`,
     Thành phần: PostTemplate,
     bối cảnh: {
      id: edge.node.id,
     },
    })
   })
   giải quyết()
  })
 })
} 

Mã này tạo các trang từ truy vấn GRAPHQL của chúng tôi và cho mỗi trang, nó sẽ sử dụng một mẫu chúng tôi đã xác định ( /src/templates/post.js. ). Vì vậy, tiếp theo, chúng ta cần tạo tập tin đó!

Tạo mẫu bài

Bên trong / src / thư mục, tạo một thư mục có tên Mẫu và một tệp bên trong được gọi là Post.js. . Thêm vào nó Mã này:

 Nhập lại phản ứng từ 'phản ứng'
Mũ bảo hiểm nhập khẩu từ 'Mũ bảo hiểm phản ứng'

lớp posttemplate mở rộng phản ứng {
 render () {
  const post = this.props.data.wordpresspost;
  const slug = this.props.data.wordpresspost.slug;

  trở về (
   & lt; div & gt;
   & lt; tiêu đề mũ bảo hiểm = {`$ {titlestring} | $ {sitetitle} `} / & gt;
   & lt; h1 storeignlysetinnerhtml = {__html: post.title}} / & gt;
   & lt; div nguy hiểmsetinnerhtml = {__html: post.content}} / & gt;
   & lt; / div & gt;
  )
 Không thể
Không thể

Xuất Pagetemplate mặc định

Xuất Const Truy vấn = GraphQL`
 Truy vấn CurrentPost ($ ID: String!) {
  wordpresspost (id: {eq: $ id}) {
   tiêu đề
   Nội dung
   sên.
  Không thể
  Địa điểm {
   SiteMetadata {
    tiêu đề
   Không thể
  Không thể
} 

Điều này sử dụng một truy vấn GRAPHQL khác để lấy dữ liệu về bài đăng cụ thể mà nó được cung cấp bởi gatsbynode.js. Tệp, sau đó sử dụng React để hiển thị thông tin đó vào trình duyệt.

Nếu bạn muốn nhanh chóng xem danh sách tất cả các bài đăng của mình, bạn có thể nhập http: // localhost: 8000 / a vào thanh địa chỉ trình duyệt của bạn. Điều này sẽ đưa bạn đến một trang phát triển 404, liệt kê tất cả các bài đăng của bạn. Nhấp vào một để truy cập nó!

Bước tiếp theo

Chúng tôi đã trầy xước bề mặt của cách sử dụng WordPress như một CMS không đầu và tôi hy vọng tôi đã giới thiệu cho bạn một số khái niệm và công cụ thú vị mà bạn có thể sử dụng và thử nghiệm trong tương lai.

Có nhiều điều nữa cho câu chuyện này và các đồng nghiệp của tôi và tôi đã viết blog về nó một cách rộng rãi tại Cây chàm. . Tôi cũng đã viết nhiều hơn trên blog cá nhân của mình, Delicious Reverie. .

Hãy giữ liên lạc với tôi qua các kênh đó và trên Twitter để nghe những phát triển thú vị hơn trong thế giới của CMS không đầu!

Bài viết này ban đầu được xuất bản trong số phát hành 308 của mạng lưới , Tạp chí bán chạy nhất thế giới cho các nhà thiết kế và nhà phát triển web. Mua số phát hành 308 tại đây hoặc là Đăng ký tại đây .

Những bài viết liên quan:

  • 40 hướng dẫn WordPress Brilliant
  • 6 lời khuyên hàng đầu để CRO thành công trong WordPress
  • 10 plugin WordPress tuyệt vời cho các nhà thiết kế

Cách - Các bài báo phổ biến nhất

Sử dụng Brain.js để xây dựng mạng lưới thần kinh

Cách Sep 12, 2025

[số 8] (Tín dụng hình ảnh: Getty Images) Brain.js là một cách tuyệt vời để xây dựng một mạng..


Cách xây dựng một ứng dụng web tiến bộ

Cách Sep 12, 2025

[số 8] Điện thoại di động hiện chiếm hơn một nửa lưu lượng truy cập web và các ứng dụng web cho ph�..


Xây dựng các ứng dụng di động đa nền tảng với Flutter của Google

Cách Sep 12, 2025

[số 8] Đã có rất nhiều khung di động đa nền tảng trong những năm qua, với những cải tiến ổn định ..


Bắt đầu với Rust

Cách Sep 12, 2025

[số 8] Trang 1/2: trang 1 trang 1 Trang..


Cách xây dựng bố cục phức tạp bằng CSS

Cách Sep 12, 2025

[số 8] Bố cục cho web luôn bị giới hạn, thực sự chưa bao giờ có bất cứ điều gì thực sự dành riê..


Làm cỏ trong động cơ không thật

Cách Sep 12, 2025

[số 8] Khi tạo trực quan kiến ​​trúc, bạn cần thể hiện rất nhiều chi tiết và một trong những tiêu..


Cách vẽ kính cong trên mũ bảo hiểm không gian

Cách Sep 12, 2025

[số 8] Spacesuits rất thú vị để vẽ, nhưng phần mũ bảo hiểm có thể khó để có được quyền, đặc b..


Tạo một poster đánh máy bằng Adobe InDesign

Cách Sep 12, 2025

[số 8] Adobe Indesign là một chương trình tuyệt vời để sử dụng khi thiết kế bất cứ thứ gì sử dụn..


Thể loại