Hướng dẫn Custom Post Type cho người không chuyên

Custom post typeTại sao tiêu đề mình đặt là “cho người không chuyên”? Đơn giản là đối với khái niệm Custom Post Type, thường thì chúng ta sẽ cần một số kiến thức về PHP nhất định như sử dụng biến, mảng hay đi sâu vào WordPress một chút là bộ lọc. Nhưng bản thân mình không phải là người giỏi PHP cho lắm nên trong bài này mình sẽ hướng dẫn cho các bạn cách sử dụng Custom Post Type trong WordPress chỉ với plugin mà không cần kiến thức về lập trình.

Trước hết hãy cho mình giải thích Custom Post Type là con khỉ khô gì.

 

Custom Post Type là một khái niệm riêng dành cho WordPress chỉ một định dạng bài viết khác ngoài 2 định dạng mặc định là Post và Page. Sao nào, nghe hơi chuối phải không, cứ nghe mình giải thích thêm đã.

Như các bạn cũng đã biết thì mặc định trong WordPress hỗ trợ 2 định dạng để viết nội dung vào đó là Post và Page. Nghĩa là ở 2 định dạng này bạn có thể viết nội dung vào đó và khách truy cập có thể đọc và bình luận lên trên đó, nói chung là Post Type đó mà.

 

Khi nào cần dùng Custom Post Type

Hmm, khi nào nhỉ? Thường thì ở trong WordPress, chúng ta sử dụng Post như một post type để viết bài, blog, tin tức. Còn Page thì dùng như một post type để đăng các trang tĩnh như giới thiệu, liên hệ….

Nhưng nếu bạn cần thêm một post type khác chỉ để đăng bài về một nội dung đặc biệt khác thì sao, như Công thức nấu ăn chẳng hạn? Mình biết là các bạn nói rằng có thể sử dụng Post để đăng các công thức nấu ăn, không hề có một chút “pờ prốp lèm” nào. Không sao, bây giờ mình sẽ cho các bạn biết lợi ích khi dùng Custom Post Type mà cụ thể ta lấy ví dụ là một post type để viết Công thức nấu ăn.

Lợi ích khi dùng Custom Post Type

Trước hết, đối với mình thì chức năng Custom Post Type trong WordPress là bá con bà đạo nhất. Nếu biết cách sử dụng thích hợp thì làm được hơi bị nhiều việc, nhiều đến nỗi mà chẳng biết nên dùng nó vào làm cái gì nữa.  :angry:

  • Tùy chọn hiển thị nội dung: Custom post type giúp bạn tập trung vào nội dung chính của nó một cách trọn vẹn hơn, ví dụ nếu bạn có một custom post type trên blog với tên Công thức thì nó là nơi tốt nhất để cho bạn đăng các công thức nấu ăn chẳng hạn.
  • Tăng cường khả năng quản lý nội dung: Nếu bạn đang bối rối giữa những bài viết thông thường xen lẫn vào các bài chứa công thức nấu ăn khi bạn vào phần Posts -> All New thì đối với Custom Post Type bạn sẽ khắc phục được nhược điểm này bằng cách mỗi custom post type sẽ có một phần riêng cho nó tương tự như Posts, kể cả bao gồm một định dạng phân loại nội dung khác (giống như tag, mà chúng ta sẽ nên gọi nó là Custom Taxonomies).
  • Tăng cường khả năng sử dụng: Hãy tưởng tượng blog của bạn có rất nhiều tác giả, bình thường thì khi viết bài bạn thường ra lệnh cho các tác giả khác là khi viết một bài blog thông thường thì phải làm thế này, thế nọ trong bài viết. Còn khi viết bài về công thức nấu ăn sẽ làm thế này, thế kia trong bài viết, nản luôn. Nhưng với Custom Post Type, bạn có thể thiết lập sẵn các truy vấn hiển thị của nó theo một cách khác để khi viết bài, chỉ cần làm 1 vài bước đơn giản là họ đã có một bài công thức nấu ăn vô cùng chuyên nghiệp. Cái này hơi dài dòng, hẹn các bạn ở bài khác sẽ nói sâu hơn.

Một số ví dụ thực tế để sử dụng Custom Post Type

  • Hãy truy cập vào WPLift và các bạn sẽ thấy xen lẫn với các bài viết thông thường là các bài viết riêng dành cho việc giới thiệu Theme và Coupon. Sau đó tác giả đã cho hiển thị 2 loại này thành 2 khu vực riêng biệt để người đọc có thể dễ dàng xem. Rồi khi click vào mỗi bài viết thì bạn sẽ thấy cách định dạng bài viết giữa Post, Coupon và Theme hoàn toàn khác nhau. Đó chính là Custom Post Type.
  • Bạn có thể thấy trong trang FearlessFlyer có 3 mục nội dung chính bao gồm Theme, Showcase và The Blog. Nhấp vào xem thì cách bày trí cũng khác nhau, URL khác nhau. Đó chính là custom post type.
  • Hoặc ở trang WPBeginer, giữa phần Deal và Blog là 2 custom post type hoàn toàn khác nhau.

Cách tạo Custom Post Type bằng plugin

Có rất nhiều plugin để tạo custom post type mà bạn có thể tìm ra rất nhiều khi tìm kiếm với từ khóa custom post type trong thư viện plugin WordPress. Nhưng trong bài này mình sẽ sử dụng một plugin mang tên Custom Post Type Maker, lý do đơn giản là vì nó làm việc tốt với WordPress 3.5.1 và các theme phức tạp như Headway hay Thesis 2, nhiều tùy chọn nâng cao.

Sau khi cài xong plugin Custom Post Type Maker, các bạn sẽ thấy một menu xuất hiện bên tay trái với tên và Post Type. Các bạn nhấp vào và chọn Post Type, tiếp tục nhấn nút Add New để thêm một post type mới.

add-new-custom-post-type

 

Và dưới đây là mình sẽ giải thích những thông số mà bạn cần nhập trong đây.

Options

  • Custom Post Type Name: Tên của Custom Post Type. Lưu ý tên của custom post type phải là chữ thường, không dấu, không khoảng trắng. Bạn có thể sử dụng dấu (-). Ví dụ: cong-thuc
  • Label: Nhãn hiển thị tên Custom Post Type trong WordPress Dashboard, giống như chữ Posts ở menu viết bài mà các bạn hay thấy đó. Bạn có thể viết sao cũng được. Ví dụ: Công thức
  • Singular Name: Tên mô tả cho custom post type này. Ví dụ: Công thức nấu ăn
  • Description: Mô tả ngắn cho custom post type này. Ví dụ: Viết bài công thức nấu ăn.

Visibility

Public: Hiển thị bảng điều khiển trong WordPress Dashboard, nên để True.

Rewrite Options

  • Rewrite: Cho phép áp dụng permalink (đường dẫn tĩnh) vào custom post type này. Nên để True.
  • With Front: Áp dụng ngoài front-end. Nên để True.
  • Custom Rewrite Slug: Tên đường dẫn tĩnh hiển thị trên đường dẫn của custom post type này. Mặc định là nó sẽ hiển thị bằng tên của Custom Post Type mà bạn đã đặt ở trên.

Front End Options

  • Feeds: Cho phép hiển thị các bài viết của custom post type này ra RSS Feed.
  • Pages: Áp dụng phân trang cho custom post type này. Cho True đi.
  • Exclude Form Search: Cho phép loại trừ các bài viết trong đây ra khỏi kết quả tìm kiếm của chức năng Tìm kiếm trong WordPress.
  • Has Archives: Cho phép đưa các bài viết của custom post type này vào trang lưu trữ. Nên để False cho đỡ rắc rối sau này.

Admin Menu Options

Cái này là tùy chỉnh các thông số của menu custom post type này trong trang WordPress Dashboard. Bạn có thể tùy chỉnh hoặc để mặc định. Mình xin lướt qua phần này.

WordPress Integration

  • Capability Type: Giải thích sao nhỉ, đại loại như nếu bạn chọn là Post thì custom post type này sẽ hoạt động giống như chức năng Post và tương tự với Page.
  • Hierarchical: Bật chức năng chia cấp bậc cho bài viết.
  • Query Var: Cho phép thực thi biến query_war cho custom post type này. Thường là để gọi bài viết ra trang chủ hay thực thi các hàm gọi dữ liệu khác.
  • Supports: Bật tắt các chức năng sẽ được hỗ trợ với custom post type này.
  • Built-in Taxonomies: Chọn loại phân loại nội dung sẽ được áp dụng vào custom post type này. Thường thì custom post type chúng ta ít khi nào sử dụng taxonomy mặc định (Tag, Category) lắm. Bạn có thể tạo một custom taxonomy với plugin này luôn. Ví dụ: Loại món ăn.

Sau đó các bạn nhấn nút Publish. Ngay lập tức bạn đã có ngay một custom post type khá toàn diện được liệt kê trong WordPress Dashboard rồi.

them-custom-post-type

 

Được rồi, bây giờ bạn đã có thể viết bài vào trong custom post type đó. Ơ ơ ơ, khoan, trước khi viết bài thì mình cũng nên nghĩ đến việc phân loại bài viết trong đó ra chứ nhỉ? Tức là tạo các chuyên mục cho nó ấy mà, hay nói đúng hơn là chúng ta nên tạo một Custom Taxonomy cho nó. Hic, mời các bạn đọc tiếp.

Custom Taxonomy là cái giống gì?

Thì nó giống…cái Tag có sẵn trong WordPress chứ gì nữa. Nghĩa là một tag sẽ liệt kê các bài viết có chung một tag vào trong đó. Custom Taxonomy cũng vậy, khi bạn tạo 1 custom taxonomy và áp dụng nó vào custom post type thì cái custom taxonomy đó sẽ cho phép bạn tạo ra thêm một số phân vùng để liệt kê những bài viết trong custom post type khi nó nằm chung một phân vùng. Và trong ví dụ này mình sẽ tạo một custom taxonomy tên là Loại món ăn.

Để tạo một custom taxonomy hoàn chỉnh thì bạn có thể sử dụng plugin Custom Post Type Maker mà mình đã giới thiệu ở trên, các bạn vào Post Type -> Taxonomies để tiến hành tạo taxonomy.

Các bạn cứ tạo như các thông số tùy chỉnh mà mình đã giải thích ở trên, tuy nhiên có một phần bạn nên lưu ý là phần tùy chọn Post Types.

Tạo custom taxonomy cho WordPress

Ở đây nghĩa là bạn chọn post types được phép áp dụng cho taxonomy này. Như trong ảnh mình đánh dấu vào Cong-thuc nghĩa là mình sẽ áp dụng custom taxonomy này cho riêng post type là Công thức mà mình đã tạo ở trên mà thôi.

Sau khi tạo xong một custom taxonomy thì bạn sẽ có thêm một tùy chọn taxonomy cho post type mà bạn đã áp dụng như thế này.

Tạo custom taxonomy trong WordPress

Và khi viết một bài mới trong custom post type đó bạn sẽ thấy có một khung giống như nhập tag như thế này

Tạo custom taxonomy cho WordPress

Thế là xong, coi như bây giờ các bạn đã có một custom post type được tích hợp custom taxonomy quá hoàn chỉnh rồi. Bây giờ việc còn lại của bạn là sử dụng nó đúng với mục đích của bạn.

Hiển thị bài viết của Custom Post Type ra trang chủ

Mặc định thì các bài viết trong một custom post type sẽ không được hiển thị ra trang chủ vì loop mặc định của WordPress chỉ thiết lập mặc định là hiển thị post ra trang chủ mà thôi. Như vậy để hiển thị các bài viết trong các custom post type ra trang chủ thì ta cần sửa lại đoạn loop đó mà cụ thể là chúng ta sẽ sử dụng bộ lọc (filter) để sửa nội dung trong file nguồn mà không cần chạm trực tiếp vào file nguồn. Các bạn viết lại đoạn code sau vào file functions.php trong thư mục theme đang dùng.

//Tạo một bộ lọc mới tên là lay_custom_post_type
add_filter('pre_get_posts','lay_custom_post_type');
//Thêm các lệnh thực thi trong bộ lọc
function lay_custom_post_type($query) {
    if (is_home() && $query->is_main_query ())
        $query->set ('post_type', array ('post','cong-thuc'));
    return $query;
}

Nhớ thay cong-thuc thành tên custom post type của bạn nhé. Nhớ là không dấu, không khoảng trắng, không chữ in hoa đâu nhé.

Các plugin cần thiết cho Custom Post Type

Nếu bạn là người không chuyên thì trong lúc sử dụng custom post type thì có thể bạn sẽ cần một số plugin riêng biệt có hỗ trợ custom post type mà cụ thể là:

Lời chú

Bài này có vẻ hơi dài nên viết tới đây thì mình nghĩ là cũng khá đầy đủ cho những ai muốn tìm hiểu và ứng dụng custom post type rồi. Mặc dù còn rất nhiều hướng dẫn nữa liên quan tới custom post type nhưng mình nghĩ là sẽ viết trong một bài viết khác.

Nếu các bạn có bất cứ câu hỏi nào về Custom Post Type thì cứ để lại bình luận ở đây nhé.

No comments yet.

Leave a Reply