Trang chủ »  Mẹo - thủ thuật »  Tạo custom post type và taxonomy trong wordpress

Tạo custom post type và taxonomy trong wordpress

02/06/2021  -   170 views

Xin chào cả nhà !. Chúc các bạn 1 ngày mới vui vẽ

Hôm nay mình xin hướng dẫn các bạn cách tạo một post type trong wordpress. Việc tạo một post type ngoài post type mặt định là post thì chúng ta dể dàng quản lý các tác vụ của nó hơn. Mình vụ như mình muốn tạo post type có tên là Tour   để mình quản lý các bài viết của Tour đó thôi, nó không liên quan tới thèn post của mình.

  • Share giao diện slide circle svg
  • Share giao diện form đăng nhập/đăng ký tuyệt đẹp
  • Tạo menu đa cấp cho theme wordpress
  • Chuyển hướng người dùng đến URL trước đó sau khi login thành công
  • Hướng dẫn tạo child theme trong wordpress
  • Những đoạn code hay dùng trong lập trình theme wordpress
  • Mình sẽ không nói đến khái niệm post type là gì ?. Mình sẽ đi vào hướng dẫn trực tiếp để  tạo một post type nhanh chóng nhé.

    Trước tiên, để tạo một custom post type thì bạn phải vào file functions.php nhưng bạn muốn dể quản lý hơn thì bạn có thể post type trong theme theo đường dẫn wp-content / theme/ [ten-theme] sau đó bạn tạo tên create-post-type.php. Sau đó bạn vào file functions.php để require vào. Mình thì hay viết thẳng vào file functions.php lun, các bạn có thể xem xét và tùy theo cách viết của các bạn nha.

    1.Hướng dẫn tạo custom post type trong wordpress

    Việc tạo post type thì có nhiều cách như viết code vào file functions, hay dùng plugin, hay dùng tool để tạo. Hôm nay mình sẽ hướng dẫn cách tạo 1 post type bằng code.

     

    /*
    * Creating a function to create our CPT
    */
     
    function custom_post_type() {
        $labels = array(
            'name'                => _x( 'Tour', 'Post Type General Name', 'tourtvc' ),
            'singular_name'       => _x( 'Tour', 'Post Type Singular Name', 'tourtvc' ),
            'menu_name'           => __( 'Tours', 'tourtvc' ),
            'parent_item_colon'   => __( 'Parent Tour', 'tourtvc' ),
            'all_items'           => __( 'All Tour', 'tourtvc' ),
            'view_item'           => __( 'View Tour', 'tourtvc' ),
            'add_new_item'        => __( 'Add New Tour', 'tourtvc' ),
            'add_new'             => __( 'Add New', 'tourtvc' ),
            'edit_item'           => __( 'Edit Tour', 'tourtvc' ),
            'update_item'         => __( 'Update Tour', 'tourtvc' ),
            'search_items'        => __( 'Search Tour', 'tourtvc' ),
            'not_found'           => __( 'Not Found', 'tourtvc' ),
            'not_found_in_trash'  => __( 'Not found in Trash', 'tourtvc' ),
        );
         
         
        $args = array(
            'label'               => __( 'tours', 'tourtvc' ),
            'description'         => __( 'Tour news and reviews', 'tourtvc' ),
            'labels'              => $labels,
            'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
            'hierarchical'        => false,
            'public'              => true,
            'show_ui'             => true,
            'show_in_menu'        => true,
            'show_in_nav_menus'   => true,
            'show_in_admin_bar'   => true,
            'menu_position'       => 5,
            'can_export'          => true,
            'has_archive'         => true,
            'exclude_from_search' => false,
            'publicly_queryable'  => true,
            'capability_type'     => 'post',
            'show_in_rest' => true,
     
        );
         
        // Registering your Custom Post Type
        register_post_type( 'tour', $args );
    }
    add_action( 'init', 'custom_post_type', 0 );

    Array $args

    Các keys thông dụng nhất của array $args ở bên dưới, không có khóa nào là bắt buộc:

    • labels – array định nghĩa nhiều loại văn bản, ví dụ  ‘Add New Post’ có thể đổi thành ‘Add New Movie’.
    • description – Mô tả ngắn về loại post type.
    • public – Post type có hiện cho tác giả và cách truy cập không.
    • publicly_queryable – Giá trị mặc định là giá trị public
    • show_ui – Giá trị mặc định là giá trị của public
    • show_in_nav_menus – Post của loại này có thể được thêm vào menu điều hướng hay không. Giá trị mặc định là giá trị public.
    • show_in_menu – Hiễn thị Post type trên thanh điều hướng trong Admin
    • show_in_admin_bar – Post type này có hiện trên thanh Admin.
    • menu_position – Vị trí hiễn thị trên thanh điều hướng
    • hierarchical – Giá trị mặc định là giá trị true
    • supports – hỗ trợ có chọn lọc nhiều tính năng như là featured images, excerpts, custom fields,…
    • has_archive – url sẽ dùng cấu trúc của permanlink của bạn, và slug là tên bạn điền vào trong tham số 1 của register_post_types()
    • query_var  – TRUE hoặc FALSE sẽ kiểm soát post có thể được xem bằng cách gõ post type và post name trong query của URL hay không.

     

    Sau khi lưu lại đoạn code trên  thì vào admin bạn sẽ thấy tên mình vừa tạo là Tour .

    Việc sau đó thì bạn thêm bài viết mới như post type bình thường.

     

    Để hiễn thị post type ra ngoài giao diện thì bạn copy đoạn mã sau

     

    <?php
    $args = array(‘post_type’ => ‘tour’,’posts_per_page’ => 10);
    $loop = new WP_Query ($args);
    while ( $loop->have_posts() ): $loop->the_post();
     ?>
        <header class="entry-header">
           <h1 class="entry-title"><a href="<?php the_permalink();?>" rel="bookmark" class="entry-title"><?php the_title();?></a></h1>
        </header>
    <?php
    
    endwhile; wp_rest_qurery(); ?>
    
    

    2. Tạo taxonomy trong wordpress

    Nếu ở post type mặt định thì taxonomy là category. Bây giờ bạn muốn quản lý các bài post Tour và muốn tạo thêm taxonomy riêng để dể dàng quản lý thì bạn sẽ làm như thế nào.

    Sau đây mình sẽ hướng dẫn các bạn cách tạo taxonomy bằng code nhé. Đầu tiên, bạn vào file functions.php và chèn đoạn code ở dưới vào.

     

    // Let us create Taxonomy Types Locations for Custom Post Type
    function tour_custom_taxonomy() {
     
      $labels = array(
        'name' => _x( 'Types Location', 'taxonomy general name' ),
        'singular_name' => _x( 'Types Location', 'taxonomy singular name' ),
        'search_items' =>  __( 'Search Types Location' ),
        'all_items' => __( 'All Types Location' ),
        'parent_item' => __( 'Parent Type Location' ),
        'parent_item_colon' => __( 'Parent Type Location:' ),
        'edit_item' => __( 'Edit Type Location' ), 
        'update_item' => __( 'Update Type Location' ),
        'add_new_item' => __( 'Add New Type Location' ),
        'new_item_name' => __( 'New Type Location Name' ),
        'menu_name' => __( 'Types Locations' ),
      ); 	
     
      register_taxonomy('types-locations',array('tour'), array(
        'hierarchical' => true,
        'labels' => $labels,
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'type-location' ),
      ));
    }
    add_action( 'init', 'tour_custom_taxonomy', 0 );

    Mình giải thích một chút nhé.

    ‘name’ => Types Location : Đây là tên taxonomy

    ‘menu_name’ => __( ‘Types Locations’ ) : đây là tên hiện mở thanh menu trong admin

    register_taxonomy(‘types-locations‘,array(‘tour‘) : types-locations là slug, tour đó là tên post type mình đã tạo ở trên.

    Lưu lại bạn vào admin thì sẽ thấy như thế này nhé

     

    Code để hiễn thị taxonomy ra ngoài giao diện

    Tổng kết

    Việc tạo ra một post type và taxonomy cực kì đơn giản, mục đích tạo ra post type để mình dể dàng quản lý các bài viết hơn. Các bạn quan tâm nhiều hơn về các mẹo và thủ thuật thì ghé qua chuyên mục này nhé.

    Nếu bạn quan tâm hơn về lập trình theme wordpress thì có thể tham khảo seri hướng dẫn lập trình theme wodpress sắp ra mắt của mình. Trong seri này mình sẽ hướng dẫn các bạn về cách tạo dựng wordpress từ đầu từ a -z, demo về wesbite tin tức và share source cho các bạn thử hành lun nhé.

    Hãy thử tạo ra và sử dụng, có thắc mắc gì thì mạnh dạn để lại comment bên dưới nhé. Mình rất vui khi được chia sẽ đền các bạn đam mê wordpress.

    Hãy tham gia group của mình để cùng xây dựng cộng đồng mạnh mẽ và follow các bài viết mới nhất về wordpress của mình nhé. Tvcdev WordPress Community 

    Chào thân ái và quyết thắng. See you !

     

    0 0 đánh giá
    Article Rating
    Theo dõi
    Thông báo của
    guest
    0 Comments
    Phản hồi nội tuyến
    Xem tất cả bình luận

    Bài viết liên quan

    Mẹo - thủ thuật 10/05/2022

    Chuyển hướng người dùng đến URL trước đó sau khi login thành công

    Đoạn code sau đây sinh ra để giải quyết vấn đề sau khi login thành công thì sẽ điều hướng ng(...)

    WP Theme 25/09/2021

    Hướng dẫn tạo child theme trong wordpress

    Chào các bạn, hôm nay mình hướng dẫn đến các bạn một bài viết củng khá quan trọng trong wordp(...)

    Mẹo - thủ thuật 25/07/2021

    Hướng dẫn cách import/export dữ liệu giữ nội dung và hình ảnh

    Có nhiều cách để export/import dữ liệu chuyển từ website này sang website khác. Nếu các bạn dùng (...)

    Mẹo - thủ thuật 20/07/2021

    Hướng dẫn tạo chức năng search autocomplete trong wordpress

    Hôm nay mình sẽ hướng dẫn đến các bạn một bài viết liên quan về ajax củng như mẹo và thủ (...)

    0
    Rất thích suy nghĩ của bạn, hãy bình luận.x