Làm thế nào tạo định dạng bài viết riêng trên WordPress

Thường thì mọi người thường có nhận định sai lầm rằng WordPress chỉ là một nơi để viết blog. Từ nhiều năm trước, WordPress đã phát triển một hệ thống quản trị content mạnh mẽ. Trong cài đặt mặc định, WordPress đặt post và page là 2 định dạng nội dung chính. Tuy nhiên, bạn có thể tạo bao nhiêu loại nội dung tùy thích và những định dạng này được coi là custom post type( định dạng bài viết riêng). Trong bài viết này, chúng tôi sẽ chỉ cho các bạn cách để tạo custom post type của mình. Tất nhiên, chúng tôi cũng sẽ hướng dẫn cho các bạn cách sử dụng chúng một cách chuyên nghiệp

Custom post type là gì?

Custom post type có nghĩa định dạng bài viết riêng là định dạng nội dung giống như PostPage. Từ khi WordPress phát triển nền tảng viết blog thông thường sang hệ thống quản trị nội dung, giới hạn bài đăng gắn liền với nó. Tuy nhiên, một loại bài đăng có thể là bất kì loại nội dung nào. Trong cài đặt mặc định, WordPress cung cấp các định dạng sau đây

  • Post
  • Page
  • Attachment
  • Revision
  • Nav Menu

Bạn có thể tạo định dạng bài viết của riêng mình và đặt tên cho nó. Ví dụ, nếu bạn muốn đăng nhận xét về một bộ phim trên trang web, bạn có thể tạo một định dạng bài viết dành riêng cho nhận xét phim. Định dạng bài viết này có thể có các mục khác nhau hay thậm chí là có cấu trúc của riêng nó nữa. Một số ví dụ khác về định dạng bài viết có thể là danh mục đầu tư, giấy chứng nhận hay sản phẩm,….

Cách tạo custom post type đơn giản nhất

Cách dễ nhất để tạo một định dạng bài viết riêng đó là sử dụng plugin. Phương pháp này được khuyên dùng cho beginner, dân không chuyên bởi vì nó rất an toàn và dễ sử dụng.

Đầu tiên, bạn cần phải cài đặt và khởi động plugin Custom Post Type UI. Sau đó, plugin này sẽ tự động thêm một mục menu mới tên CPT UI vào menu quản trị trang WordPress.

Giờ thì hãy đi tới CPT UI >> Add New để tạo một custom post type nhé.

cpt-ui

Plugin CPT UI còn cho phép bạn tạo phân loại danh mục riêng của mình nữa

Đây là lý do vì sao trang thêm custom post type này được chia làm 2 bên. Bên trái sẽ là biểu mẫu bạn cần điền đẻ tạo định dạng bài viết mới, còn bên phải là biểu mẫu để tạo danh mục phân loại nếu bạn muốn. Chúng tôi có bài viết về 12 Hướng Dẫn Custom Post Type Hữu Ích Nhất hãy đọc nó nhé.

Trong cột custom post type, đầu tiên bạn cần đặt tên cho nó. Tên này không được có quá 20 kí tự, ví dụ như movies, recipe,deal…

Trong ô tiếp theo, bạn cần đặt tên nhãn cho custom post type của mình. Tên nhãn sẽ được hiển thị trên thanh quản trị giống như posts và pages. Tất nhiên là nó phải được để ở dạng số nhiều, ví dụ như movies, recipes,deals,…

new-cpt

Sau đó bạn cần dạng số ít cho tên nhãn này. Dạng số it sẽ được WordPress sử dụng để hiển thị hướng dẫn và các yếu tố giao diện sử dụng khác.

Cuối cùng là điền mô tả cho custom post type này của bạn. Thông tin mô tả này được dùng để mô tả cho người dùng biết loại bài viết này sắp xếp như thế nào.

Giờ thì bạn có thể nhấn vào nút tạo định dạng bài viết riêng để thêm định dạng bài viết mới của mình vào.Bạn cũng có thể nhấn vào Tùy chọn nhãn nâng cao và đường dẫn tùy chọn nhân cao để hiệu chỉnh các tùy chọn cho custom post type của mình

Tạo custom post type một cách thủ công

Vấn đề mắc phải khi sử dụng plugin đó là định dạng bài viết riêng của bạn sẽ biến mất khi plugin bị tắt đi. Tất cả dữ liệu trong những bài viết này vẫn ở đó, nhưng định dạng bài viết riêng của bạn sẽ bị mất hiệu lực.

Nếu bạn đang làm việc trên trang web khách hàng và không muốn cài đặt thêm một plugin nào khác, bạn có thể tạo định dạng bài viết riêng một cách thủ công bằng cách thêm các mã được yêu cầu vào tập tin giao diện function.php hoặc vào plugin

Trước hết, chúng tôi sẽ cho bạn thấy một ví dụ ngắn và đầy đủ để bạn hiểu cơ chế hoạt động của nó, hãy nhìn vào mã này :

// Our custom post type function
function 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'),
		)
	);
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );

Những gì mà mã này làm là đó đăng kí kiểu bài viết ‘movies’ với ma trận các đối số. Các đối số này là tùy chọn cho định dạng bài viết. Ma trận này có 2 phần, phần đầu tiên là nhãn, cái mà bản thân nó cũng là một ma trận.

Phần thứ 2 bao gồm các đối số khác như hiển thị công cộng, đã lưu trữ và mã được dùng trong các đường dẫn cho kiểu bài viết này
Giờ thì hãy xem xét kĩ hơn từng thành phần của code thêm lựa chọn cho định dạng bài viết riêng của bạn nhé

/*
* Creating a function to create our CPT
*/

function custom_post_type() {

// Set UI labels for Custom Post Type
	$labels = array(
		'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
		'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
		'menu_name'           => __( 'Movies', 'twentythirteen' ),
		'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
		'all_items'           => __( 'All Movies', 'twentythirteen' ),
		'view_item'           => __( 'View Movie', 'twentythirteen' ),
		'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
		'add_new'             => __( 'Add New', 'twentythirteen' ),
		'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
		'update_item'         => __( 'Update Movie', 'twentythirteen' ),
		'search_items'        => __( 'Search Movie', 'twentythirteen' ),
		'not_found'           => __( 'Not Found', 'twentythirteen' ),
		'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
	);
	
// Set other options for Custom Post Type
	
	$args = array(
		'label'               => __( 'movies', 'twentythirteen' ),
		'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
		'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'     => 'page',
	);
	
	// Registering your Custom Post Type
	register_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 ta đã thêm nhiều lựa chọn cho định dạng bài viết hơn với code này. Nó sẽ thêm một số chức năng như hỗ trợ đọc chỉnh sửa, ảnh đại diện, ô tùy chỉnh,…

Chúng ta cũng có thể liên kết định dạng bài viết với tùy chỉnh phân loại danh mục, tức là phân thể loại. Cũng cần chú ý tới phần mà chúng ta thiết lập sai thứ tự. Nếu bạn muốn định dạng bài viết của mình có thể biểu thị như Pages, bạn hãy thiết lập đúng con số này.

Ngoài ra, bạn cũng cần chú ý đến việc sử dụng lặp đi lặp lại ‘twentythirteen’, tạm gọi là text domain. Nếu giao diện của bạn đã được dịch và bạn muốn định dạng bài viết của mình cũng vậy, hãy thiết lập để giao diện sử dụng text domain. Bạn có thể tìm text domain của giao diện ở tập tin style.css trong mục tùy chỉnh giao diện. Text domain sẽ được đặt ở đầu tập tin.

Hiển thị custom post type trên trang web

WordPress xây dựng hệ thống hỗ trợ cho custom post type của bạn. Sau khi đã thêm một vài mục vào custom post type của mình, giờ là lúc hiển thị chúng trên trang web của bạn

Có rất nhiều cách để bạn thực hiện việc này, mỗi cách đều có những lợi ích riêng của nó.

Hiển thị định dạng bài viết riêng bằng cách sử dụng mẫu lưu trữ mặc định

Đầu tiên, đi tới Appearance >> Menu và thêm một đường dẫn tới menu. Đường dẫn này là đường dẫn tới định dạng bài viết riêng của bạn. Nếu bạn đang sử dụng SEO friendly URL thì đường dẫn tới định dạng bài viết riêng của bạn sẽ gần giống như thế này :

  • http://example.com/movies

Nếu không, đường dẫn sẽ gần có dạng như thế này:

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

Thay example.com bằng tên miền và movies bằng tên định dạng bài viết riêng của bạn. Lưu lại menu và đi tới front-end trên trang web. Bạn sẽ thấy menu mới được thêm vào, và khi nhấn vào nó, nó sẽ hiển thị trang lưu trữ định dạng bài viết sử dụng tệp tin mẫu archive.php trong giao diện của bạn.

Sử dụng mẫu riêng để lưu trữ định dạng bài viết riêng và các bài viết đơn lẻ

Nếu bạn không thích sự có mặt của trang lưu trữ định dạng bài viết riêng, bạn có thể sử dụng mẫu chuyên dụng. Để làm được việc này, tất cả những gì bạn cần phải làm là tạo một tập tin mới trong tùy chỉnh giao diện và đặt tên nó là archive-movies.php. Thay movies bằng tên định dạng bài viết riêng mà bạn muốn đặt.

Để bắt đầu, bạn có thể copy nội dung của tập tin giao diện single.php tới mẫu single-movies.php và bắt đầu chỉnh sửa theo ý thích của mình. Từ bây giờ khi trang lưu trữ định dạng bài viết của bạn được kết nỗi, mẫu này sẽ được dùng để hiển thị.

Tương tự, bạn cũng có thể tạo một mẫu cho hiển thị định dạng bài viết đơn lẻ của mình. Chỉ cần tạo tập tin single-movies.php trong tùy chọn giao diện của bạn. Đừng quên thay ‘movies’ bằng tên định dạng bài viết bạn muốn đặt cho nó.

Hiển thị định dạng bài viết riêng trên đầu trang

Một tác dụng của việc sử dụng định dạng bài viết riêngđó là nó giúp cho loại nội dung đó khác hoàn toàn với những bài đăng thông thường của bạn. Tuy nhiên, nếu bạn muốn chúng hiển thị giữa các bài viết thông được của mình, bạn có thể thêm mã này vào tập tin giao diện function.php hay 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;
}</pre>
<pre>

Don’t forget to replace movies with your custom post type.

Đừng quên thay “movies” bằng tên định dạng bài viết riêng của bạn

Định dạng bài viết riêng truy vấn

Nếu bạn đã quen với việc nhập mã và muốn chạy những truy vấn lặp đi lặp lại trong mẫu của mình, dưới đây là cách để thực hiện việc này

Bằng việc truy vấn cơ sở dữ liệu, bạn có thể khôi phục các mục từ một định dạng bài viết riêng

<?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: ?>


<?php _e( 'Sorry, no posts matched your criteria.' ); ?>

<?php endif; ?></pre>
<pre>

Trong mã này, đầu tiên, chúng ta đã định dạng loại bài viết và số lượng bài viết trên một page cho WP_Query mới. Sau đó, khi chúng ta đặt truy vấn, khôi phục bài viết và hiển thị chúng trong vòng lặp

Hiển thị định dạng bài viết riêng trong mục tiện ích.

Bạn sẽ chú ý thấy có một tiện ích mặc định trong WordPress có chức năng hiển thị các bài đăng gần đây. Nhưng tiện ích này không cho phép bạn chọn định dạng bài viết riêng. Vậy nếu bạn muốn hiển thị bài viết mới nhất từ định dạng bài viết bạn mới tạo trong tiện ích thì sao? Có một cách rất đơn giản để giải quyết vấn đề này.

Đầu tiên, bạn cài đặt và kích hoạt plugin Ultimate Posts Widget. Sau khi kích hoạt, đi tới Appearance >>Widgets, rồi kéo và thả tiện tích này vào thanh bên trên.

Tiện ích này sẽ cho phép bạn thiển thị các bài viết mới của bất kì loại bài viết nào. Bạn cũng có thể hiển thị trích đoạn của bài viết kèm theo link để đọc tiếp hay thậm chí là hiển thị một ảnh tính năng bên cạnh tiêu đề bài viết. Tùy chỉnh tiện ích bằng cách chọn những tùy chọn mà bạn muốn hoặc chọn định dạng bài viết riêng của bạn. Sau đó, lưu thay đổi và xem nó hoạt động như thế nào trên trang web của bạn nhé

Một số hiệu chỉnh định dạng bài viết nâng cao

Bạn có thể làm rất nhiều thứ cho định dạng bài viết riêng của mình. Bạn có thể học Cách Hạn Chế Bài Đăng Trên RSS Feed Trong WordPress hoặc Làm thế nào chuyển hướng người dùng tới bài viết ngẫu nhiên trong WordPress? . Bạn có thể học Làm thế nào để thêm post type archive vào các menus điều hướng WordPress

Chúng tôi hi vọng bài viết này sẽ giúp bạn biết được cách tạo định dạng bài viết riêng cho mình trên WordPress.

Về tác giả

Duy Anh

Chào các bạn,

Mình là coder, đang sống và làm việc ở Mỹ. Mình thích viết lách nên muốn dành khoảng thời gian trống để chia sẻ các thủ thuật giúp các bạn xây dựng được trang web riêng của mình. Bạn nào cần xây dựng blog, web thì cứ ới, rảnh là mình giúp, tất cả FREE nhé!

Ý kiến cá nhân của bạn

bộ công cụ Wordpress hữu ích dành cho mọi website

Bộ công cụ hữu ích dành cho mọi website Wordpress

Bao gồm theme & plugin tốt nhất và được sử dụng nhiều nhất!

Xin vui lòng kiểm tra email để xác thực tài khoản!