Làm thế nào để tạo các dạng Custom Post trong WordPress?

Bạn có muốn học cách tạo các loại tùy chỉnh bài viết (Custom Post Types) trong WordPress không? Custom Post Types sẽ chuyển đổi một trang web WordPress từ một trang web có nền tảng blog sang Content Management System (CMS), còn được biết đến là hệ thống quản lý nội dung.

Về cơ bản, Custom Post Types cho phép bạn chỉnh sửa các bài viết và trang đơn thuần bằng cách tạo ra các loại nội dung khác nhau cho trang web của mình.

Trong bài viết này, chúng tôi sẽ hướng dẫn cho bạn cách dễ dàng tạo Custom Post Types trong WordPress. Ở phần nội dung, chúng tôi sẽ trình bày hai cách. Tùy vào điều kiện website của mình, bạn hãy chọn 1 phương pháp phù hợp hơn.

Custom Post Type Là gì?

Các loại tùy chỉnh bài viết là các loại nội dung như bài viết đơn giản và trang web.  Kể từ khi WordPress phát triển từ một nền tảng viết blog đơn giản thành một CMS mạnh mẽ, một giới hạn được định ra cho nó. Tuy nhiên, một bài viết có thể chứa bất kỳ nội dung nào. 

Cơ bản, WordPress thường là các dạng dưới đây

Bạn có thể tạo các Custom Post Type và gọi nó bằng bất cứ thứ gì bạn muốn. 

Ví dụ: nếu bạn chạy trang web đánh giá phim, bạn có thể muốn tạo các bài viết đánh giá phim. Loại bài viết này có thể có các trường tùy chỉnh khác nhau và thậm chí có cấu trúc tùy chỉnh danh mục riêng của nó. 

 Ví dụ khác về loại bài viết là danh mục đầu tư, chứng thực, sản phẩm, v. v. 

Nhiều plugin wordpress phổ biến đã sử dụng các loại bài viết tùy chỉnh để lưu trữ dữ liệu trên trang web WordPress của bạn. Sau đây là một số plugin hàng đầu sử dụng các loại bài viết tùy chỉnh. 

§ woocommerce – thêm tùy chỉnh sản phẩm vào trang web wordpress của bạn. 
§ wpforms – tạo một wpforms để lưu trữ tất cả biểu mẫu của bạn 
§ memberpress – thêm một loại tùy chỉnh memberpressproduct 

Khi nào ta cần các loại tùy chỉnh bài viết? 

Hãy xem những bài viết của chúng tôi khi bạn thực sự cần các loại tùy chỉnh bài viết hoặc taxonomies ở WordPress. Đây là các loại tùy chỉnh bài viết mà chúng tôi đã tạo để  tách các sections riêng biệt ra khỏi bài viết trên blog của chúng tôi hàng ngày. Chúng giúp chúng tôi sắp xếp nội dung trang web.

Bạn cũng sẽ nhận thấy rằng chúng tôi đang sử dụng custom taxonomies (tùy chỉnh taxonomies) thay vì bằng danh mục hoặc bằng thẻ. 

Vì vậy, hãy xem nó rất dễ dàng tạo các custom post type (loại tùy chỉnh bài viết) trong WordPress cho bạn sử dụng. 

Làm thế nào để tạo các dạng Custom Post trong WordPress?

Phương pháp 1. Tạo loại custom post type (tùy chỉnh bài viết) – Cách dễ dàng  

Cách dễ nhất để tạo custom post type (loại tùy chỉnh bài viết) trong WordPress là sử dụng plugin. Phương pháp này được đề xuất cho người mới bắt đầu bởi vì nó an toàn và dễ dàng. 

Điều đầu tiên bạn cần làm là cài đặt và kích hoạt Custom Post Type UI plugin. Khi kích hoạt, plugin sẽ thêm mục menu mới vào phần menu WordPress admin của bạn và được gọi là CPT UI.


Nào, hãy truy cập vào CPT UI » Add New để tạo loại custom post type (tùy chỉnh bài viết) mới. 

Đầu tiên, bạn cần cung cấp slug cho custom post type (loại tùy chỉnh bài viết) của bạn. Slug này sẽ được sử dụng trong URL và WordPress queries (truy vấn WordPress). Vì vậy nó chỉ có thể chứa các chữ cái và các con số. 

Dưới đây, bạn cần cung cấp tên ngắn và dài cho các custom post type (loại tùy chỉnh bài viết) của mình. 

Tiếp theo, bạn có thể tùy ý nhấn vào liên kết ‘Populate additional labels based on chosen labels’ (điền nhãn bổ sung dựa trên nhãn đã chọn). Làm như vậy sẽ điền vào phần còn lại của các nhãn dưới. 

Kéo chuột xuống phần ‘Additional Labels’ và từ đây bạn có thể cung cấp cho phần mô tả cho post type (loại bài viết) và thay đổi các labels (nhãn). 

Labels (nhãn) sẽ được sử dụng trong giao diện WordPress user (người dùng) khi bạn đang quản lý nội dung trong loại bài viết cụ thể đó. 

Tiếp theo, tùy chọn cài đặt kiểu post. Từ đây, bạn có thể thiết lập các thuộc tính khác nhau cho loại bài viết của mình. Mỗi tùy chọn có một mô tả và giải thích ngắn gọn những gì nó làm được. 

Ví dụ, bạn có thể chọn không thực hiện loại bài viết hierarchical (phân cấp) như các trang hoặc reverse chronological (đảo ngược thời gian) như bài viết. 

Bên dưới general settings (cài đặt chung), bạn sẽ thấy tùy chọn để chọn các tính năng chỉnh sửa mà loại bài viết này sẽ hỗ trợ. Đơn giản kiểm tra các tùy chọn mà bạn muốn được đưa vào. 

Cuối cùng, nhấp vào nút ‘Add Post Type’ để lưu và tạo loại tùy chỉnh bài viết.

Đó là tất cả, bạn đã tạo thành công custom post type (loại tùy chỉnh bài viết). Bạn có thể tiếp tục và bắt đầu thêm nội dung. 

Chúng tôi sẽ hiển thị cho bạn cách hiển thị loại bài viết tùy chỉnh trên trang web của bạn sau trong bài viết này. 

Tạo loại tùy chỉnh bài viết theo cách thủ công 

Vấn đề với việc sử dụng plugin là các loại bài viết tùy chỉnh của bạn sẽ biến mất khi plugin bị hủy kích hoạt. Bất kỳ dữ liệu nào bạn có trong các loại bài viết tùy chỉnh đó vẫn sẽ ở đó nhưng custom post type (loại tùy chỉnh bài viết) của bạn sẽ không được đăng ký và sẽ không được truy cập từ khu vực admin. 

Nếu bạn đang làm việc trên trang web của khách hàng và không muốn cài đặt plugin khác,  bạn có thể tạo custom post type (loại tùy chỉnh bài viết) bằng cách nhập required code (mã bắt buộc) vào file functions.php theme của bạn hoặc site-specific plugin.

Trước tiên, chúng tôi sẽ cho bạn xem một ví dụ nhanh và hoàn chỉnh để bạn hiểu cách nó hoạt động. Hãy xem đoạn mã này: 

  // Our custom post type functionfunction
create_posttype() { 
register_post_type( 'movies',
// CPT Options
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'movies'),
'show_in_rest' => true, )
);
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );

Code này làm đăng ký loại bài viết ‘movies’ với một mảng của arguments. Những arguments này là các tùy chọn của loại tùy chỉnh bài viết của chúng tôi. 

Mảng này có hai phần, phần đầu tiên được gắn nhãn và được gắn chính là mảng của nó. Phần thứ hai chứa các arguments như public visibility, có archive, slug và show_in_rest cho phép block người hỗ trợ.

Bây giờ, hãy xem một đoạn mã chi tiết để thêm nhiều tùy chọn vào custom post type (loại tùy chỉnh bài viết) của bạn. 

/** Creating a function to create our CPT*/functioncustom_post_type() {// Set UI labels for Custom Post Type$labels= array('name'=> _x( 'Movies', 'Post Type General Name', 'twentytwenty'),'singular_name'=> _x( 'Movie', 'Post Type Singular Name', 'twentytwenty'),'menu_name'=> __( 'Movies', 'twentytwenty'),'parent_item_colon'=> __( 'Parent Movie', 'twentytwenty'),'all_items'=> __( 'All Movies', 'twentytwenty'),'view_item'=> __( 'View Movie', 'twentytwenty'),'add_new_item'=> __( 'Add New Movie', 'twentytwenty'),'add_new'=> __( 'Add New', 'twentytwenty'),'edit_item'=> __( 'Edit Movie', 'twentytwenty'),'update_item'=> __( 'Update Movie', 'twentytwenty'),'search_items'=> __( 'Search Movie', 'twentytwenty'),'not_found'=> __( 'Not Found', 'twentytwenty'),'not_found_in_trash'=> __( 'Not found in Trash', 'twentytwenty'),);// Set other options for Custom Post Type$args= array('label'=> __( 'movies', 'twentytwenty'),'description'=> __( 'Movie news and reviews', 'twentytwenty'),'labels'=> $labels,// Features this CPT supports in Post Editor'supports'=> array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),// You can associate this CPT with a taxonomy or custom taxonomy. 'taxonomies'=> array( 'genres'),/* A hierarchical CPT is like Pages and can have* Parent and child items. A non-hierarchical CPT* is like Posts.*/'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 Typeregister_post_type( 'movies', $args);}/* Hook into the 'init' action so that the function* Containing our post type registration is not * unnecessarily executed. */add_action( 'init', 'custom_post_type', 0 );

Như bạn có thể thấy, chúng tôi đã thêm nhiều tùy chọn vào loại bài viết tùy chỉnh với mã này. Nó sẽ thêm nhiều tính năng như hỗ trợ để sửa đổi, hình ảnh nổi bật, các trường tùy chỉnh và nhiều hơn nữa. 

Chúng tôi cũng liên kết loại tùy chỉnh bài viết này với tùy chỉnh taxonomy được gọi là genres.

Bạn cũng có thể nhận thấy phần mà chúng ta đã đặt hierarchical value là false. Nếu bạn muốn custom post type (loại tùy chỉnh bài viết) của mình hoạt động như các Page, thì bạn có thể đặt value này thành true. 

Một điều khác để được chú ý là cách sử dụng lặp lại của chuỗi twentytwenty, được gọi là text-domain. Nếu theme của bạn translation ready, và bạn muốn các custom post type (loại tùy chỉnh bài viết) của mình được dịch, thì bạn sẽ cần đề cập đến text domain do theme của bạn sử dụng. 

Bạn có thể tìm thấy text domain của theme trong tệp style.css trong theme directory của bạn. Text domain sẽ được đề cập ở đầu của tệp.

Hiển thị các custom post type (loại tùy chỉnh bài viết) trên site của bạn

WordPress có hỗ trợ tích hợp để hiển thị các custom post type (loại tùy chỉnh bài viết) của bạn. Khi bạn đã thêm một vài mục vào custom post type (loại tùy chỉnh bài viết) mới của mình, thì đã đến lúc hiển thị chúng trên website của bạn. 

Có một vài phương pháp mà bạn có thể sử dụng, mỗi phương pháp có lợi riêng của nó. 

Hiển thị custom post type (loại tùy chỉnh bài viết) bằng Default Archive Template (mẫu lưu trữ mặc định) 

Đầu tiên, bạn có thể truy cập Appearance » Menus và thêm custom link (liên kết tùy chỉnh) vào menu của bạn. Custom link này là liên kết đến custom post type (loại tùy chỉnh bài viết) của bạn. 

Nếu bạn đang sử dụng SEO friendly permalinks thì CPT’s URL sẽ có một nội dung như sau:

http://example.com/movies

Nếu bạn không sử dụng SEO friendly permalinks thì custom post type (loại tùy chỉnh bài viết) URL của bạn sẽ như sau:

http://example.com/?post_type=movies

Đừng quên thay thế example.com bằng tên domain và movie với tên custom post type (loại tùy chỉnh bài viết) của bạn.

Save menu của bạn rồi truy cập vào đầu website của bạn. Bạn sẽ thấy menu mới bạn đã thêm và khi bạn nhấp vào đó, nó sẽ hiển thị trang lưu trữ custom post type (loại tùy chỉnh bài viết) bằng mẫu tệp archive.php template file trong theme của bạn.

Sử dụng Custom Templates cho CPT Archives và Single Entries (các mục nhập đơn)

Nếu bạn không thích xuất hiện của trang lưu trữ cho custom post type (loại tùy chỉnh bài viết) của mình, thì bạn có thể sử dụng mẫu template for custom post type archive.

Để làm điều đó tất cả những gì bạn cần làm là tạo một tập tin mới trong thư mục chủ đề và tên nó archive-movies.php. Thay thế movies có tên của custom post type (loại tùy chỉnh bài viết) của bạn.

Để bắt đầu, bạn có thể sao chép nội dung trong tệp theme’s archive.php vào archive-movies.php template và sau đó bắt đầu sửa đổi như bạn cần. 

Hiện tại, khi trang lưu trữ của custom post type (loại tùy chỉnh bài viết) của bạn được truy cập, mẫu này sẽ được sử dụng để hiển thị. 

Tương tự, bạn cũng có thể tạo mẫu tùy chỉnh cho mục nhập đơn lẻ của loại bài viết. Để làm điều đó bạn cần tạo single-movies.php trong theme directory. Đừng quên thay thế movies với tên của custom post type (loại tùy chỉnh bài viết). 

Bạn có thể bắt đầu bằng cách sao chép nội dung theme’s single.php template vào single-movies.php template và sau đó bắt đầu sửa đổi như bạn cần. 

Hiển thị các custom post types (loại tùy chỉnh bài viết) ở The Front Page (đầu trang)

 Một lợi thế của việc sử dụng các custom post type (loại tùy chỉnh bài viết) là nó giữ các loại nội dung tùy chỉnh của bạn tránh xa các post thông thường của bạn. Tuy nhiên, nếu bạn muốn chúng hiển thị giữa post thường, thì bạn có thể làm bằng cách thêm code này vào tệp theme’s functions.php hoặc là site-specific plugin: 

  add_action( 'pre_get_posts', 'add_my_post_types_to_query' ); 
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'movies' ) );
return $query;
}

Đừng quên thay thế movie với custom post type (tùy chỉnh bài viết) của bạn.

Truy vấn custom post type (loại tùy chỉnh bài viết)

Nếu bạn quen với coding và muốn chạy loop queries trong các templates của bạn, thì đây là cách để thực hiện điều đó (Related: What is a Loop?).

Bằng cách truy vấn cơ sở dữ liệu, bạn có thể truy xuất các mục từ custom post type (tùy chỉnh bài viết).

  <?php
$args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?><h2>
<?php the_title(); ?></h2>
<div class="entry-content"><?php the_content(); ?> </div>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

Trong mã này, đầu tiên, chúng tôi đã xác định post type (loại bài viết) và posts per page (bài viết trên mỗi trang) trong  arguments cho WP_Query class mới của chúng tôi. 
Sau đó, chúng tôi truy vấn truy vấn, truy xuất các bài viết và hiển thị trong loop. 

Hiển thị các custom post type (loại tùy chỉnh bài viết) trong Widgets (tiện ích) 

Bạn sẽ nhận thấy rằng có một widget (tiện ích) mặc định trong WordPress để hiển thị các bài viết gần đây, nhưng không cho phép bạn chọn custom post type (tùy chỉnh bài viết). 
Nếu bạn muốn hiển thị các mục nhập mới nhất từ loại bài viết mới được tạo trong widget (tiện ích)? Có một cách dễ dàng để làm điều này. 

Điều đầu tiên bạn cần làm là cài đặt và kích hoạt Ultimate Posts Widget plugin. Khi kích hoạt, chỉ cần chuyển đến Appearance » Widgets và kéo và thả Ultimate Posts widget xuống thanh bên.

Widget (tiện ích) mạnh mẽ này sẽ cho phép bạn hiển thị các posts (bài viết) gần đây từ bất kỳ loại post types (bài viết) nào. Bạn cũng có thể hiển thị các trích dẫn bài viết bằng một liên kết đọc khác hoặc thậm chí hiển thị hình ảnh nổi bật bên cạnh tiêu đề bài viết. 

Cấu hình widget bằng cách chọn các tùy chọn mà bạn muốn và bằng cách chọn custom post type (tùy chỉnh bài viết). Sau khi lưu thay đổi và xem tiện ích con trong hành động trên website của bạn. 

Chỉnh sửa Custom Post Type (tùy chỉnh bài viết) Tweaks

Có quá nhiều thứ bạn có thể làm với các custom post types (loại tùy chỉnh bài viết) của mình. Bạn có thể tìm cách thêm custom post types in main RSS feed hoặc tạo separate feed for each custom post type. 

Nếu bạn đang tìm một giải pháp không có mã để tùy chỉnh các trang lưu trữ loại bài viết tùy chỉnh, thì chúng tôi khuyên bạn nên xem WordPress page builder plugin như Beaver Builder hoặc Divi vì cả hai đều có thể giúp bạn làm điều đó. 

Chúng tôi hy vọng bài viết này giúp bạn học cách tạo các custom post types (loại tùy chỉnh bài viết) trong WordPress.

Nếu bạn thích bài viết này, hãy theo YouTube Channel để xem thêm các hướng dẫn về WordPress. Bạn có thể tìm kiếm chúng tôi trên Twitter and Facebook.