JetEngine CPT Đăng ký Biến Truy vấn và Lập chỉ mục công cụ tìm kiếm

JetEngine CPT Đăng ký Biến Truy vấn và Lập chỉ mục công cụ tìm kiếm

Cài đặt CPT (Custom Post Type) của JetEngine liên quan đến việc thiết lập “Register Query Var” và “Rewrite” có ảnh hưởng đến cấu trúc URL và việc lập chỉ mục của công cụ tìm kiếm. Chúng ta sẽ tổng hợp ý nghĩa của từng thiết lập và xem xét cách sử dụng chúng.

Post Type là gì

“Post type” là khái niệm phân biệt loại nội dung trong WordPress.

Nếu coi WordPress là một kho nội dung, thì “Post type” có thể được coi là ‘loại hộp nội dung’ trong kho. WordPress phân loại Post Type nội bộ như sau.

Cơ bản nhất là phân chia thành “Page” và “Post”, trong đó “Page” được sử dụng để lưu trữ mã HTML cho các trang web, còn “Post” được sử dụng để lưu trữ các bài viết thông thường như blog, bài báo, v.v., được hiển thị giữa thiết kế Header/Footer của trang web. Nếu bạn cài đặt WooCommerce để vận hành cửa hàng trực tuyến bằng WordPress, bạn sẽ định nghĩa thêm một Post Type gọi là ‘product’.

  • 📄 post = Hộp bài viết blog
  • 📃 page = Hộp thông tin tĩnh (giới thiệu/liên hệ, v.v.)
  • 📷 attachment = Hộp hình ảnh hoặc tệp tin
  • 🛒 product = Hộp sản phẩm cửa hàng (ví dụ: WooCommerce)
  • 🎬 movie = Hộp thông tin phim (CPT tùy chỉnh)

Có phải bạn đang thắc mắc liệu người quản trị trang web hoặc nhà phát triển có thể định nghĩa và sử dụng Post Type cho các mục đích khác không? Có thể định nghĩa Post Type để sử dụng cho các mục đích khác nhau, và điều này được gọi là ‘Custom Post Type (CPT)’.

Custom Post Type là gì

Tại sao cần thiết? (Why)

WordPress cơ bản chỉ cung cấp hai loại nội dung là PostPage. Tuy nhiên, trong các trường hợp sau, điều này là không đủ:

  • Khi bạn muốn xử lý nội dung không phải là bài blog như sản phẩm, danh mục đầu tư, sự kiện, đánh giá, phim, bài giảng
  • Khi mỗi loại nội dung cần có trường, thiết kế, phương thức quản lý riêng biệt
  • Khi bạn muốn quản lý, phân loại, xuất bản nội dung cụ thể một cách riêng biệt

📌 Ví dụ:

  • Trang web đánh giá phim → Tạo CPT phim (Movie), CPT diễn viên (Actor)
  • Nền tảng giáo dục → CPT bài học (Lesson), CPT giảng viên (Teacher)
  • Trang web công ty → Danh mục đầu tư (Portfolio), Dự án (Project)

Ai sử dụng? (Who)

  • Nhà phát triển web hoặc đại lý web
  • Nhà thiết kế cần tùy chỉnh WordPress
  • Nhóm marketing muốn phân loại nội dung
  • Startup hoặc doanh nghiệp muốn tạo ra trang web tập trung vào chức năng

Khi nào sử dụng? (When)

  • Khi trang web cần nhiều loại nội dung
  • Khi mỗi nội dung cần có trường tùy chỉnh, mẫu, tiêu chí phân loại khác nhau
  • Khi bạn muốn tạo ra chức năng chuyên nghiệp kết nối với REST API, màn hình quản trị tùy chỉnh, v.v.
  • Khi bạn muốn tạo ra trang web nâng cao bằng Elementor, JetEngine, ACF, v.v.

Làm thế nào để định nghĩa

Các nhà phát triển web có thể định nghĩa theo nhiều cách khác nhau. CPT sử dụng cấu trúc cơ sở dữ liệu mà WordPress dùng để lưu trữ dữ liệu, chỉ cần phân biệt giá trị ghi trong trường post_type của bảng wp_posts như ‘page’, ‘post’, ‘attachment’, v.v.

Thông thường, bạn chỉ cần sử dụng một plugin được xây dựng tốt. Tại COOSS.NET, chúng tôi sử dụng CrocoblockJetEngine để dễ dàng định nghĩa và sử dụng Custom Post Type.

Ví dụ, tại COOSS.NET, chúng tôi đã định nghĩa ‘Ý kiến giao dịch AI về đồng tiền’ dưới tên ‘buysell-coin’ như một Post Type riêng. Mục đích là để hiển thị dưới dạng khác với các bài viết thông thường như [ Ý kiến giao dịch BTC AI – Lý do quyết định mua/bán/giữ ngày 2025-03-28 ], và việc chỉ định là một Post Type riêng giúp quản lý dễ dàng hơn.

Dưới đây là hộp thoại để định nghĩa CPT trong JetEngine.

image 14

Hiểu về cài đặt Post Type của JetEngine

Trong bài viết này, chúng ta sẽ tìm hiểu sâu hơn về các thiết lập “Register Query Var” và “Rewrite” khi thiết lập Custom Post Type (CPT).

image 15

Register Query Var là gì?

Register Query Var kết nối với hệ thống truy vấn nội bộ của WordPress. Nó cho phép xác định hoặc lọc loại bài viết thông qua các biến cụ thể trong chuỗi truy vấn URL.

Khi tùy chọn này được kích hoạt, bạn có thể truy vấn CPT thông qua yêu cầu URL.

Ví dụ, bạn có thể hiển thị bài viết theo định dạng địa chỉ dưới đây với giá trị biến (query variable) được thêm sau dấu ?.

https://example.com/?your_post_type_slug=post_slug

Ví dụ trên trang COOSS.NET, địa chỉ dưới đây cũng sẽ hoạt động. (Nhấn vào để thử).

https://cooss.net/?buysell-coin=btc-25-03-28-02-00

Cài đặt Register Query Var trong JetEngine

Ảnh hưởng khi kích hoạt

Khi kích hoạt Register Query Var:

  • Hệ thống truy vấn nội bộ sẽ nhận diện loại bài viết tương ứng trong thanh địa chỉ.
  • Nhờ đó, bạn có thể thực hiện truy vấn trực tiếp bằng tham số URL hoặc truy cập qua WP_Query.

Bạn có thể gọi bằng mã PHP như sau,

$query = new WP_Query( [
'my_custom_post_type' => 'post_slug'
] );


Trong thanh địa chỉ, bạn sẽ có thể hiển thị bài viết với địa chỉ như dưới đây.

https://cooss.net/?buysell-coin=btc-25-03-28-02-00

Ảnh hưởng khi không kích hoạt

Khi không kích hoạt, bạn sẽ không thể sử dụng biến truy vấn cho loại bài viết đó, do đó không thể thực hiện truy vấn trực tiếp qua URL hoặc WP_Query. Thông thường, nếu CPT chỉ được truy cập qua REST API, có thể không cần đăng ký query_var.

Cài đặt Rewrite là gì?

Tùy chọn Rewrite được sử dụng để tạo ra các URL dễ nhớ hơn. Điều này cung cấp cấu trúc URL thân thiện với công cụ tìm kiếm và người dùng.

Ví dụ, khi cài đặt Rewrite được kích hoạt, bạn cũng có thể truy cập theo đường dẫn dưới đây.

https://domain.com/post_type_slug/post_slug

Tại sao cần cài đặt Rewrite

Nếu không có cài đặt Rewrite, bạn sẽ phải sử dụng URL như `https://domain.com/?post_type=post_type_slug&p=post_id`, điều này không thuận lợi cho tối ưu hóa công cụ tìm kiếm.

Tại COOSS.NET, ban đầu chúng tôi không kích hoạt tùy chọn này. Nhưng khi xem các trang đã được lập chỉ mục bởi công cụ tìm kiếm, chúng tôi nhận thấy công cụ tìm kiếm đã ghi lại dưới dạng ‘https://domain.com/post_type_slug/post_slug’. Tuy nhiên, khi nhấp vào địa chỉ này, WordPress không nhận diện được địa chỉ và hiển thị thông báo lỗi rằng trang không tồn tại. Hiện tại, chúng tôi đã kích hoạt cài đặt Rewrite, do đó cả địa chỉ dạng truy vấn và địa chỉ mà công cụ tìm kiếm lập chỉ mục đều được hiển thị bình thường.

Sử dụng tổng hợp hai thiết lập

Khi xác nhận lỗi trong cách thức lập chỉ mục của công cụ tìm kiếm, tôi nghĩ rằng cũng cần thiết lập cách kết hợp các thiết lập này.

Tóm tắt khái niệm

  • Register Query Var : Cho phép truy cập chuỗi truy vấn theo định dạng /?post_type_slug=slug-name
  • Rewrite : Cho phép permalink theo định dạng /post_type_slug/slug-name

Kết hợp các thiết lập (Query Var + Rewrite)

  • On + On : Hỗ trợ truy vấn + Permalink phân cấp (Thích hợp cho hầu hết các CPT công khai)
  • Off + On : Truy vấn + Hỗ trợ Permalink phân cấp (Thích hợp cho các trang web công khai)
  • On + Off : Truy vấn + Hỗ trợ Permalink phân cấp (CPT dùng cho phát triển, thử nghiệm)
  • Off + Off : Truy vấn + Hỗ trợ Permalink phân cấp (CPT dùng cho quản trị, nội bộ)

Bạn có thể tham khảo bảng này để điều chỉnh cài đặt cho phù hợp với nhu cầu của từng trang web.

Đề xuất theo tình huống (Query Var + Rewrite)

1. Nội dung công khai như blog, danh mục đầu tư, sản phẩm, thông báo
  • On + On
  • URL thân thiện với người dùng + Truy cập truy vấn linh hoạt → Lập chỉ mục công cụ tìm kiếm hoạt động tự nhiên
https://yourdomain.com/portfolio/my-design
https://yourdomain.com/?portfolio=my-design
2. CPT lưu trữ tài liệu chỉ dành cho quản trị
  • Off + Off
  • CPT để lưu trữ nhật ký hệ thống, kết quả API nội bộ, v.v.
    • Chặn truy cập bên ngoài
    • Chỉ sử dụng cho REST API hoặc backend
3. CPT chỉ dành cho REST API
  • Off + Chọn theo tình huống
  • Khi chỉ được sử dụng qua REST, ngăn chặn công khai đường dẫn không cần thiết

Tóm lại, đối với hầu hết các CPT công khai thông thường, việc thiết lập cả hai tùy chọn là On là linh hoạt và an toàn nhất, trong khi CPT nội bộ hoặc CPT chỉ dành cho API nên được tắt để ngăn chặn việc công khai không cần thiết vì lý do bảo mật và hiệu suất.

Lưu ý

Sau khi thiết lập Rewrite On, bạn cần nhấp vào trang cài đặt Permalink mà không thay đổi gì và nhấn “Lưu thay đổi” một lần.

Cài đặt trên được chỉ định trong JetEngine, nhưng việc áp dụng quy tắc Rewrite tuân theo quản lý của WordPress, và chỉ sau khi thực hiện điều này thì quy tắc rewrite mới được đăng ký trong WordPress.

 

[Register Query Var] : Chức năng xác định loại bài viết thông qua biến cụ thể trong chuỗi truy vấn URL.
[Rewrite] : Chức năng thay đổi cấu trúc URL thành dạng thân thiện với người dùng.
[404 lỗi] : Thông báo lỗi xảy ra khi trang yêu cầu không tồn tại.
[Google Search Console] : Công cụ của Google để theo dõi hiệu suất và trạng thái lập chỉ mục của trang web.

Updated : March 28, 2025
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.