Hướng dẫn custom post type trong wordpress từ a đến z

Ngày đăng: 29 - 04 - 2020 Lượt xem: 4905 lượt

Hôm nay chúng ta sẽ đi tìm hiểu một trong những tính năng biến wordpress trở thành CMS mạnh mẽ nhất thế giới đó là custom post type trong wordpress.

Vậy custom post type trong wordpress là gì? Vì sao nó lại quan trọng? Cách sử dụng nó nhưng thế nào? Để trả lời cho các câu hỏi trên chúng ta sẽ tìm hiểu bài hôm nay nhé.

Custom post type trong wordpress là gì?

Khi cài wordpress xong chúng ta sẽ thấy mặc định có phần post (Bài viết), phần này sẽ quản lý tất cả bài viết của website. Đối với các website blog hoặc tin tức thì nhưng vậy là đủ…

Nhưng trường hợp mình muốn làm website bán hàng, mình cần thêm 1 khu vực để đăng sản phẩm. Vậy website chỉ có 1 phần bài viết như trên là không đủ chúng ta cần tạo ra một khu vực khác để đăng sản phẩm.

Hướng dẫn custom post type trong wordpress từ a đến z

Việc đi tạo khu vực để đăng sản phẩm có chức năng tương tự phần post người ta gọi là custom post type. Và khu vực mới đó người ta gọi là post type sản phẩm.

Và tất nhiên wordpress đã cung cấp sẵn các hàm, các công cụ để chúng ta tạo 1 hoặc nhiều custom post type.

Tính năng này đã giúp wordpress không dừng lại ở một CMS làm blog mà chúng ta còn có thể làm nhiều loại website khác như: Website bán hàng, bất động sản, công ty, dịch vụ, quản lý…

Cách tạo custom post type trong wordpress

Để tạo custom post type trong wordpress chúng ta sử dụng đoạn code sau, chèn đoạn code này vào file functions.php của theme đang sử dụng nhé.

Cú pháp

function tao_custom_post_type(){
    /*
     * Biến $label để chứa các text liên quan đến tên hiển thị của Post Type trong Admin
     */
    $label = array(
        'name' => 'Sản phẩm', //Tên post type dạng số nhiều
        'singular_name' => 'Sản phẩm' //Tên post type dạng số ít
    );
    /*
     * Biến $args là những tham số quan trọng trong Post Type
     */
    $args = array(
        'labels' => $label, //Gọi các label trong biến $label ở trên
        'description' => 'Post type đăng sản phẩm', //Mô tả của post type
        'supports' => array(
            'title',
            'editor',
            'excerpt',
            'author',
            'thumbnail',
            'comments',
            'trackbacks',
            'revisions',
            'custom-fields'
        ), //Các tính năng được hỗ trợ trong post type
        'taxonomies' => array( 'category', 'post_tag' ), //Các taxonomy được phép sử dụng để phân loại nội dung
        'hierarchical' => false, //Cho phép phân cấp, nếu là false thì post type này giống như Post, true thì giống như Page
        'public' => true, //Kích hoạt post type
        'show_ui' => true, //Hiển thị khung quản trị như Post/Page
        'show_in_menu' => true, //Hiển thị trên Admin Menu (tay trái)
        'show_in_nav_menus' => true, //Hiển thị trong Appearance -> Menus
        'show_in_admin_bar' => true, //Hiển thị trên thanh Admin bar màu đen.
        'menu_position' => 5, //Thứ tự vị trí hiển thị trong menu (tay trái)
        'menu_icon' => 'dashicons-cart', //Đường dẫn tới icon sẽ hiển thị
        'can_export' => true, //Có thể export nội dung bằng Tools -> Export
        'has_archive' => true, //Cho phép lưu trữ (month, date, year)
        'exclude_from_search' => false, //Loại bỏ khỏi kết quả tìm kiếm
        'publicly_queryable' => true, //Hiển thị các tham số trong query, phải đặt true
        'capability_type' => 'post' //
    );
    register_post_type('sanpham', $args); //Tạo post type với slug tên là sanpham và các tham số trong biến $args ở trên
}
add_action('init', 'tao_custom_post_type');

Một số lưu ý:

  • Hàm register_post_type nhận 2 giá trị đó là slug và tham số $args
  • Slug trong hàm register_post_type sẽ sử dụng để get dữ liệu của post type ra ngoài frontend
  • Trong tham số $args có thành phần ‘supports’ là đây là những thanh phần sẽ hỗ trợ trong post type sanpham. Nếu không cần sử dụng tất cả bạn có thể xóa một số thành phần cho post type của chúng ta trở nên gọn gàng hơn.
  • menu_icon là icon hiển thì khi post type mới được đăng ký, các bạn có thể chọn 1 trong các icon ở đây: Danh sách icon menu trong admin wordpress

Sau khi tạo custom post type thành công các bạn vào admin sẽ thấy xuất hiện menu sản phẩm như hình dưới.

Hướng dẫn custom post type trong wordpress từ a đến z

Tạo custom post type trong wordpress bằng plugin:

Phía trên là cách tạo custom post type bằng code. WordPress có rất nhiều plugin giải quyết vấn đề này ví dụ như

Hiển thị bài viết của custom post type trong wordpress

Chúng ta sẽ sử dụng vòng lặp get post trong wordpress để lấy bài viết của custom post type. Các bạn sử dụng đoạn code phía dưới nhé.

Cú pháp hiển thị sử dung New wp_query

<?php 
  $args = array(
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'post_type'      => 'sanpham'
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Như các bạn đã thấy thì so với get bài viết thông thường get bài viết của post type chỉ có một điểm thay đổi đó là: ‘post_type’ => ‘sanpham’ sanpham ở đây là slug của post type mà chúng ta khai báo trong phần tạo custom post type, còn lại mọi thứ đều tương tự post.

Đặt tên file get danh sách bài viết, trang chi tiết của custom post type:

Để lấy danh sách tất cả bài viết trong custom post type vừa tạo chúng ta chạy được dẫn: domain.com/sanpham => sanpham là slug khi đăng ký post type, khi chạy đường dẫn đó chúng sẽ gọi file: archive-sanpham.php

Đối với trang chi tiết của custom post type nó sẽ nhận file: single-sanpham.php

Tổng kết:

Như vậy hôm nay mình đã hướng dẫn cho bạn các bạn các tạo custom post type, đây là một trong những tính năng hay nhất của wordpress đã làm cho wordpress trở thành một cms mạnh mẽ và được nhiều người sự dụng.

Điều kiến wordpress mạnh mẽ là custom được nhiều thứ, giúp wp trở thành đa năng. Các bài viết sau mình sẽ hướng dẫn bạn custom một số thành phần khác của wordpress

Chúc các bạn học lập trình theme wordpress thành công, chào các bạn!

5 3 votes
Đánh giá bài viết

Nhận thông báo
Nhận thông báo cho
guest

0 Góp ý
Inline Feedbacks
View all comments

Bài viết liên quan

Tạo và quản lý vai trò người dùng trong WordPress

Tạo và quản lý vai trò người dùng trong WordPress

18 - 12 - 2021

WordPress đã là một lựa chọn phổ biến cho các trang web cần hệ thống quản lý nội dung...

Đếm số lượt xem bài viết WordPress

Đếm số lượt xem bài viết WordPress

19 - 04 - 2021

Đếm số lượt xem bài viết WordPress? Bạn đang muốn tạo bộ đếm số lượt xem trang/ bài viết để...

Sử dụng child theme trong WordPress

Sử dụng child theme trong WordPress

23 - 02 - 2021

Sử dụng child theme trong WordPress như thế nào? Nếu bạn đã từng sử dụng WordPress để xây dựng các...

Hướng dẫn tạo sidebar và get sidebar trong wordpress

Hướng dẫn tạo sidebar và get sidebar trong wordpress

08 - 05 - 2020

Sidebar trong wordpress sẽ giúp website linh động hơn. Giúp khách hàng có thể thay đổi một số thành...

Hướng dẫn tạo menu và get menu trong wordpress

Hướng dẫn tạo menu và get menu trong wordpress

07 - 05 - 2020

Menu trong wordpress là một thành phần khá quan trọng. Hầu hết các website wordpress đều có chức năng...

Hướng dẫn get user và custom user field trong wordpress

Hướng dẫn get user và custom user field trong wordpress

07 - 05 - 2020

Tiếp tục với seri hướng dẫn lập trình theme wordpress, hôm nay mình sẽ hướng dẫn cho các bạn...

0
Would love your thoughts, please comment.x