Mặc định trong WordPress không có đánh số trang nếu nhưng website của bạn có nhiều bài viết và số trang ngày càng nhiều thì rất cần đánh số trang để độc giả dễ dàng chuyển trang theo ý muốn từ đó tăng tỉ lệ Pageview cho website điều này có lợi cho SEO.

wordpress-pagination

Sau đây mình sẽ hướng dẫn các bạn cách tạo Numeric Pagination trong WordPress cực kỳ dễ dàng.

Hướng dẫn phân trang wordpress không sử dụng Plugin

1. Đầu tiên mở file functions.php và thêm đoạn code dưới đây vào cuối file (nhớ thêm trước ?> nhá)

<span style="color: #c0c0c0;">function page_nav() {

	if( is_singular() )
		return;

	global $wp_query;

	/** Stop execution if there's only 1 page */
	if( $wp_query->max_num_pages <= 1 )
		return;

	$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
	$max   = intval( $wp_query->max_num_pages );

	/**	Add current page to the array */
	if ( $paged >= 1 )
		$links[] = $paged;

	/**	Add the pages around the current page to the array */
	if ( $paged >= 3 ) {
		$links[] = $paged - 1;
		$links[] = $paged - 2;
	}

	if ( ( $paged + 2 ) <= $max ) {
		$links[] = $paged + 2;
		$links[] = $paged + 1;
	}

	echo '<div class="navigation"><ul>' . "\n";

	/**	Previous Post Link */
	if ( get_previous_posts_link() )
		printf( '<li>%s</li>' . "\n", get_previous_posts_link() );

	/**	Link to first page, plus ellipses if necessary */
	if ( ! in_array( 1, $links ) ) {
		$class = 1 == $paged ? ' class="active"' : '';

		printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );

		if ( ! in_array( 2, $links ) )
			echo '<li>…</li>';
	}

	/**	Link to current page, plus 2 pages in either direction if necessary */
	sort( $links );
	foreach ( (array) $links as $link ) {
		$class = $paged == $link ? ' class="active"' : '';
		printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
	}

	/**	Link to last page, plus ellipses if necessary */
	if ( ! in_array( $max, $links ) ) {
		if ( ! in_array( $max - 1, $links ) )
			echo '<li>…</li>' . "\n";

		$class = $paged == $max ? ' class="active"' : '';
		printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
	}

	/**	Next Post Link */
	if ( get_next_posts_link() )
		printf( '<li>%s</li>' . "\n", get_next_posts_link() );

	echo '</ul></div>' . "\n";

}</span>

2. Tiếp theo các bạn chỉnh sửa giao diện cho Pagination

<span style="color: #ff0000;"><span style="color: #c0c0c0;">.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
	color: #fff;
	text-decoration:none;
}

.navigation li {
	display: inline;
}

.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
	background-color: #6FB7E9;
	border-radius: 3px;
	cursor: pointer;
	padding: 12px;
	padding: 0.75rem;
}

.navigation li a:hover,
.navigation li.active a {
	background-color: #3C8DC5;</span>
}</span>

Các bạn thay đổi các giá trị sao cho phù hợp với blog của mình nhé!

Cuối cùng chỉ cần hiển thị cái Pagination ra ngoài front-end thôi. Thêm đoạn code này vào nới bạn muốn hiển thị


<span style="color: #c0c0c0;"><?php page_nav(); ?></span>

Hoàn thành các bước trên thì các bạn đã tạo cho mình một phân trang mà không cần sử dụng bất cứ plugin nào.

Nguồn: cuulonggroup

Hướng dẫn phân trang trong WordPress không cần plugin
4 (80%) 5 votes

About The Author

Trần Tân

Tôi là Tân, tôi đã có 4 năm kinh nghiệm thiết kế website (Wordpress) và làm SEO. Hiện tại tôi chỉ chú trọng vào SEO và thích chia sẻ những bài viết cảm thấy tâm đắc.

Bình luận

avatar
Close