Mặc định, Ở trang chủ của TheSis theme sẽ hiển thị “← Previous Entries” và “Next Entries →” để điều hướng bài viết. Tất nhiên, như vậy sẽ không tiện cho người đọc. Bằng cách phân trang người đọc sẽ nhanh chóng di chuyển đến một trang bất kỳ. Trong bài này, Hư Trúc sẽ hướng dẫn cách bạn thực hiện điều này.
Thủ thuât này Hư Trúc dựa theo hướng dẫn của Ashwin và đã thêm vào code phân trang (không dùng plugin nữa).
Các bước thực hiện
1.Thêm code vào custom_functions.php
Thêm đoạn code sau vào bên dưới file custom_functions.php. Bạn vào TheSIS Options -> Custom File Editor. Chọn file custom_functions.php trong hộp và nhấn Edit selected file. (Nên lưu dự phòng trước khi chỉnh sửa)
/***** pagenavi http://hutruc.com *****/
function page_navi($before = '', $after = '') {
global $wpdb, $wp_query;
$request = $wp_query->request;
$posts_per_page = intval(get_query_var('posts_per_page'));
$paged = intval(get_query_var('paged'));
$numposts = $wp_query->found_posts;
$max_page = $wp_query->max_num_pages;
if(empty($paged) || $paged == 0) {
$paged = 1;
}
$pages_to_show = 5;
$pages_to_show_minus_1 = $pages_to_show-1;
$half_page_start = floor($pages_to_show_minus_1/2);
$half_page_end = ceil($pages_to_show_minus_1/2);
$start_page = $paged - $half_page_start;
if($start_page <= 0) {
$start_page = 1;
}
$end_page = $paged + $half_page_end;
if(($end_page - $start_page) != $pages_to_show_minus_1) {
$end_page = $start_page + $pages_to_show_minus_1;
}
if($end_page > $max_page) {
$start_page = $max_page - $pages_to_show_minus_1;
$end_page = $max_page;
}
if($start_page <= 0) {
$start_page = 1;
}
echo $before.'<div class="page_navi">'."n";
if ($start_page >= 2 && $pages_to_show < $max_page) {
$first_page_text = "First";
echo '<a href="'.get_pagenum_link().'" title="'.$first_page_text.'">'.$first_page_text.'</a>';
}
previous_posts_link('«');
for($i = $start_page; $i <= $end_page; $i++) {
if($i == $paged) {
echo '<span class="current">'.$i.'</span>';
} else {
echo '<a href="'.get_pagenum_link($i).'">'.$i.'</a>';
}
}
next_posts_link('»');
if ($end_page < $max_page) {
$last_page_text = "Last";
echo '<a href="'.get_pagenum_link($max_page).'" title="'.$last_page_text.'">'.$last_page_text.'</a>';
}
echo '</div>'.$after."n";
}
function my_thesis_pagination() {
echo "<div class='prev_next'>";
page_navi();
echo "</div>";
}
remove_action('thesis_hook_after_content','thesis_post_navigation');
add_action('thesis_hook_after_content', 'my_thesis_pagination');
/***** end pagenavi http://hutruc.com *****/
2.Thêm CSS vào custom.css
Thêm đoạn code sau vào bên dưới file custom.css. Bạn vào TheSIS Options -> Custom File Editor. Chọn file custom.css trong hộp và nhấn Edit selected file. (Nên lưu dự phòng trước khi chỉnh sửa)
/***** pagenavi http://hutruc.com *****/
.custom .full_width #content_box .page_navi .page {
margin: 2px;
padding: 2px 4px;
}
.page_navi {
text-align:center;
clear:both;
padding-top:10px;
}
.page_navi .current{
padding:2px 5px;
margin:3px;
border:1px solid #ccc;
background:#E0E0E0;
}
.page_navi a{
padding:2px 5px;
margin:3px;
border:1px solid #ccc;
}
/***** end pagenavi http://hutruc.com *****/
Hư Trúc cũng mới làm quen với TheSiS thôi nên cách làm này có thể chưa tối ưu. Bạn còn cách nào hay hơn, hãy chia sẻ với mọi người nhé. Chúc bạn thành công.

{ 23 comments… read them below or add one }
chào mừng trở lại
chà bác lại chơi thesis rồi….hết wpline để hỏi 

nhưng sao data mất hết rồi bác hutruc
nghiadoi´s last blog ..Tony Buzan và Phương pháp tư duy Mindmap
Không phải mất mà em không phục hồi lại. Sẽ tự edit lại sau. Muốn thủ công để chỉnh sửa một tý
Bác đừng lo, em vẫn cài blog demo trên localhost nên cần gì bác cứ tự nhiên đặt câu hỏi nhé
Chào mừng sự trở lại củ Hutruc, mà sao lại “Đít sờ” nữa vậy bác… đi đâu cũng gặp hết, hihih, chúc bác quay trở lại với nhiều thành công nghen…
nguyentrung167´s last blog ..Nhật kí sinh hoạt 10/01
Thanks bác. Em cũng muốn thay đổi không khí ấy mà. Với lại chuyển qua thesis vọc một thời gian cho biết với đời
Cos thêm một bác trở thành fan của Thesis. Thế thì mình nhàn rồi :-)
Ah mà bác đang dùng cái host của LCWsoft đấy ha, chạy nhanh ra phết, chẳng khác gì hostgator nhỉ :-)
Tinh´s last blog ..Top 5 WordPress Framework Themes Có Khả Năng SEO Tốt Nhất
Vâng, hôm qua trang chủ load cực chậm, trang bài viết thì nhanh hơn. Hôm nay em fix rồi, bỏ luôn thumb nên load khá nhanh
dùng WP-PageNavi liệu được không bác? Đây là plugin dùng để phân trang 1-trang 2-trang 3… mà em vẫn hay dùng. Em chưa thử với TheSiS. Bác thử xem dc ko
Tất nhiên là được chứ, tuy nhiên chỉ một ít code là xong, cần gì ta phải dùng plugin
Chào HT,
Cho mình góp ý xiu xíu vào đoạn mã để chèn vào custom_functions.php nha:
Các bạn hãy đổi:
và
thành:
và
Giải thích: Mình đã xóa kí tự n đi để tránh hiện tượng 2 chữ N in hoa hiện ra cạnh PageNavi -> Mất thẩm mĩ
Thân!
Dũng @ All 4 You Blog´s last blog ..Miễn phí Backup4all Lite 4.4 Edition
Cảm ơn bác nhé, Đoạn code gốc mà HT viết thì chỗ đó là \n (có tác dụng tạo dòng mới) nhưng post lên đây nó bị mất dấu “\” nên bị thế
Hì.. mình cũng chỉ tình cờ ngang qua và thấy lỗi thui ^^!
à
may mà có thư gửi thông báo cho mình ko thì mình quên mất.
Cái bài Tut HT hướng dẫn chuyển dữ liệu từ AIO SEO sang Thesis mình áp dụng hem được. Bạn xem xem có lỗi ở đâu không nha ^^!
Dũng @ All 4 You Blog´s last blog ..Miễn phí maComfort Standard Version
Bạn đã đổi prefix chưa
mình đổi rùi
hjx hjx… ko hỉu tại sao nứa.. à

nếu để chung 2 thằng này thì có sợ xung khắc gì không nhỉ
Dũng @ All 4 You Blog´s last blog ..Miễn phí maComfort Standard Version
Nó báo như thế này
Dũng @ All 4 You Blog´s last blog ..Miễn phí maComfort Standard Version
Có thể do lâu rồi HT không dùng AIO nên code cũ không áp dụng được. HT vừa cập nhật code mới, bác thử xem sao.
Bác xem hướng dẫn viết code trên HT nhé: http://hutruc.com/about/comment
Hư Trúc có plugin, hay đoạn code nào phân trang trong bài viết không ? Có thể hướng dẫn cho mình với.
WP đã hổ trợ rồi bạn à. Bạn tham khảo chi tiết ở đây nhé: http://codex.wordpress.org/Styling_Page-Links
Mình có tham khảo qua Style_page_links người ta dùng thẻ để phân trang trong bài viết. Vấn đề của mình là dùng query sql để hiển thị bài viết, mình không thể nào sử dụng echo ““. Mong được sự chỉ giáo của bạn.
Vấn đề của bạn đơn giản thôi, sao phải làm cho rắc rối thêm. Bạn chỉ việc thêm đoạn code sau
vào vị trí thích hợp ở file single.php; khi viết bài, bạn chỉ việc thêm
ở vị trí bạn muốn phân ra thành trang mới.
Cảm ơn đã giúp mình, nhưng vấn đề chưa được giải quyết
Cấu trúc query từ csdl của mình có dạng:
Mình muốn xuất kết quả là:
Nội dung trang 1
Page 1 2 3
vấn đề gặp phải là dòng code
không xuất được kết quả. (Mình đã thêm vào
vào single.php rồi)
Mong sự trợ giúp từ bạn ! Cảm ơn
Vấn đề của bạn HT nghĩ đơn giản hơn thì nên theo cách trên là gọn rồi. Còn ý của bạn thật sự HT không rõ lắm, chắc ngoài khả năng của HT. Mong bạn thông cảm
hix, nó không hiển thị thẻ <–nextpage–>