Bài này đã cũ và một vài hình ảnh bị mất. Mình sẽ cập nhật vào đầu năm 2014, tạm thời các bạn xem bài này: Hướng dẫn Custom Post Type căn bản.
Tạ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à.
Nếu bạn vẫn chưa rõ và Post và Page là như thế nào thì hãy xem bộ Video tự học WordPress của mình, nhớ xem video nói về Post và Page nhé.
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.
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:
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.
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.
Public: Hiển thị bảng điều khiển trong WordPress Dashboard, nên để True.
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.
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.
Đượ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.
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.
Ở đâ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.
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
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.
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é.
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à:
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é.
Bài hướng dẫn này mình sử dụng plugin Custom Post Type Maker vì nó đơn giản, dễ sử dụng. Nhưng nếu bạn cần một plugin tương tự với nhiều tính năng hơn, hỗ trợ custom post field, meta boxes thì hãy dùng plugin Types nhé